Future-C Syntax

    SCRIPT:int nNumber, String strName, int nModule1, int nModule2, int nModule3, String strVerzeichnis, String strBitmapFile, int nMinUsertype, int nInActive, String strBitmapFile2, String strDashboardDirectory
        <Code>
        ENDSCRIPT

Anything outside of the script definition is ignored.

Code:

    statement1; statement2; statement3; ...

Statement:

    <Declaration> | <Assignment> | <FunctionCall> | <IfStatement> | <WhileStatement> | <ForEachRowStatement> | <CommentStatement> | <IncludeScriptStatement> | return

Declaration:

    <type> <name> |
        <type> <name> = <expression>

Assignment:

    <name> = <expression>

Expression:

    constant | variable | FunctionCall | MathematicalExpression | StringConcatenation

MathematicalExpression:

    <expression> <mathematical_operator> <expression> |
        <integer_variable> ++ | <integer_variable> -- | <double_variable> ++ | <double_variable> --

mathematical_operator:

    + | - | * | / | %

StringConcatenation:

    <string_variable> + <string_variable>

FunctionCall:

    <name>(<parameters>)

IfStatement:

    if (<condition>) {
            <statements>
        } |
        if (<condition>) {
            <statements>
        } else {
            <statements>
        }

WhileStatement:

    while (<condition>) {
            <statements>
        }

condition:

    <expression> |
        <expression> <comparison_operator> <expression> |
        <condition> AND <condition> |
        <condition> OR <condition>

comparison_operator:

    == | != | > | < | >= | <=

ForEachRowStatement:

    foreachrow(<table>;<row_variable>;bool bShowProgressbar) {
            <statements>
        } |
        foreachrowreverse(<table>;<row_variable>;bool bShowProgressbar) {
            <statements>
        }

CommentStatement:

    // Comment
        |
        /* Comment */

IncludeScriptStatement:

    #includescript <number>

Types

simple types:

    int | double | BOOL

Object types (these types have methods that can be called):

    CString | CTable | CMoney | CDateTime

Distinctive Language Features

Coding Style

Script-defined functions

Function Definition:

    FUNCTION: <return_type> <name>(<parameters>);
            <code>
            [funcreturn <expression>;]
        ENDFUNCTION;

Return type can be any of the simple types or any of the object types or void.

Function Call:

    Call:<name>(<parameters>)