#ignore    ::= [' ' | '\t' | '\r' | '\n' | "/*" ignoreEmbeddedComment | "//"->'\n']*;
translation_unit    ::= script<this>;
script<"">    ::=
        #try
            
            
            => set this = "procedural";
            script<"procedural">
        
        
        #catch(sError1)
    |
        #try
            => set this = "extended-BNF";
            script<"extended-BNF">
        #catch(sError2)
    |
        #try
            => set this = "template-based";
            script<"template-based">
        #catch(sError3)
    |
        
        => set this = "";
        => error("Not recognized as a 'CodeWorker' script:\n" +
                 "  - procedural script:\n" + sError1 +
                 "  - extended-BNF script:\n" + sError2 +
                 "  - template-based script:\n" + sError3);
    ;
script<"procedural">    ::=
        #ignore 
        #continue 
        [instruction]*
        #empty 
        ;
script<"extended-BNF">    ::=
        #ignore
        #continue
        [BNF_instruction]+
        #empty;
BNF_instruction    ::=
            BNF_general_directive
        |
            FUNCTION_KEYWORD:sKeyword
            #continue
            instruction<sKeyword>
        |
            production_rule
        ;
script<"template-based">    ::=
        #continue
        [
            STARTING_RAW_TEXT
            #continue
            #ignore
            [
                    !preprocessor expression
                    STARTING_TAG_OR_END
                |
                    [instruction]*
                    STARTING_TAG_OR_END
            ]
        ]+;
ignoreEmbeddedComment    ::= ->["*/" | "/*" ignoreEmbeddedComment | "//"->'\n' ignoreEmbeddedComment];
expression    ::=    boolean_expression<false>;
boolean_expression    ::= ternary_expression<""> [boolean_operator #continue ternary_expression<"">]*;
concatenation_expression    ::= comparison_member_expression<false>;
expression<bNumeric>    ::=    boolean_expression<bNumeric>;
boolean_expression<bNumeric>    ::= ternary_expression<bNumeric> [boolean_operator #continue ternary_expression<bNumeric>]*;
boolean_operator    ::= "&&" | "||" | "^^" | '&' | '|' | '^';
ternary_expression<bNumeric>    ::= comparison_expression<bNumeric> ['?' #continue expression<bNumeric> ':' expression<bNumeric>]?;
comparison_expression<bNumeric>    ::=
        comparison_member_expression<bNumeric>
        [
                comparison_operator #continue comparison_member_expression<bNumeric>
            |
                INSET #continue constant_set
        ]*
        ;
comparison_operator    ::=    "<=" | "<>" | ">=" | "!=" | "==" | '<' | '=' | '>';
constant_set    ::=
        '{' #continue
        [CONSTANT_STRING | CONSTANT_CHAR]
        [
            ','
            #continue
            [CONSTANT_STRING | CONSTANT_CHAR]
        ]*
        '}'
        ;
comparison_member_expression<true>    ::= shift_expression [sum_operator #continue shift_expression]*;
sum_operator    ::= PLUS | '-';
shift_expression    ::= factor_expression [shift_operator #continue factor_expression]*;
shift_operator    ::= "<<" | ">>";
factor_expression    ::= literal_expression<true> [factor_operator #continue literal_expression<true>]*;
factor_operator    ::= '*' | '/' | '%';
comparison_member_expression<false>    ::= literal_expression<false> [CONCAT #continue literal_expression<false>]*;
literal_expression<bNumeric>    ::=
        CONSTANT_STRING
    |
        '(' #continue expression<bNumeric> ')'
    |
        '$' #continue #check(!bNumeric) expression<true> '$'
    |
        '~' #continue #check(bNumeric) literal_expression<true>
    |
        CONSTANT_CHAR
    |
        '!' #continue literal_expression<bNumeric>
    |
        #readNumeric 
    |
        
        
        
        
        
        
        
        
        
        #readIdentifier:{"true", "false"}
    |
        function_call
    |
        variable_expression ['.' #continue method_call]?
        ;
variable_expression    ::=
        #readIdentifier:sIdentifier variable_expression<sIdentifier>
    |
        '#' #continue "evaluateVariable" '(' expression ')'
        ;
script_file_expression<"free">    ::=
        '{' #continue [instruction]* '}'
    |
        expression
        ;
script_file_expression<"pattern">    ::=
        '{' #continue
        => local bContinue = true;
        [
            #check(bContinue)
            STARTING_RAW_TEXT
            #continue
            #ignore
            [
                    !preprocessor expression
                    [STARTING_TAG | '}' => set bContinue = false;]
                |
                    [instruction]*
                    [STARTING_TAG | '}' => set bContinue = false;]
            ]
        ]+
    |
        expression
        ;
script_file_expression<"translate">    ::= script_file_expression<"BNF">;
script_file_expression<"BNF">    ::=
        '{' #continue [BNF_instruction]* '}'
    |
        expression
        ;
variable_expression<sIdentifier> : #!ignore    ::=
        [
                #ignore '.' #readIdentifier
                ![['<' concatenation_expression '>']? '(']
            |
                '[' #ignore #continue expression ']'
            |
                '#'
                [
                        VARIABLE_SPECIAL_ACCESSOR
                    |
                        '[' #ignore #continue expression ']'
                ]
        ]*
        ;
method_call    ::=
        #readIdentifier:sMethodName
        [
                predefined_method_call<sMethodName>
            |
                user_method_call
        ];
user_method_call    ::=    ['<' concatenation_expression '>']? '(' #continue [expression [',' #continue expression]*]? ')';
function_call    ::=
        #readIdentifier:sFunctionName
        [
                predefined_function_call<sFunctionName>
            |
                module_function_call
            |
                user_function_call
        ];
module_function_call    ::= "::" #readIdentifier:sFunctionName '(' #continue [expression [',' #continue expression]*]? ')';
user_function_call    ::=    ['<' concatenation_expression '>']? '(' #continue [expression [',' #continue expression]*]? ')';
instruction    ::=
        '{' #continue [instruction]* '}'
    |
        #readIdentifier:sKeyword
        [
                instruction<sKeyword>
            |
                predefined_function_call<sKeyword> ';'
            |
                predefined_procedure_call<sKeyword> ';'
            |
                module_function_call ';'
            |
                user_function_call ';'
        ]
    |
        preprocessor
    |
        variable_expression '.' #continue method_call ';'
    |
        #check(this != "procedural")
        STARTING_TAG
        #!ignore
        #continue STARTING_ENDING_RAW_TEXT
        #ignore
        [!preprocessor expression ![!'@' !"%>" !#empty]]?
        ;
preprocessor    ::= '#' #readIdentifier:sKeyword preprocessor<sKeyword>;
preprocessor<"include">    ::= #continue CONSTANT_STRING;
preprocessor<"coverage">    ::= #continue '(' variable_expression ')';
preprocessor<"matching">    ::= #continue '(' variable_expression ')';
preprocessor<"jointpoint">    ::= ['(' #continue variable_expression ')']?;
preprocessor<"use">    ::= #continue #readIdentifier;
instruction<sIdentifier>    ::=    variable_expression<sIdentifier> ['=' | "+="] #continue expression ';';
instruction<"if">    ::= #continue boolean_expression instruction [ELSE #continue instruction]?;
instruction<"do">    ::= #continue instruction WHILE boolean_expression ';';
instruction<"while">    ::= #continue boolean_expression instruction;
instruction<"switch">    ::= #continue '(' expression ')' switch_body;
switch_body    ::=
        '{'
        #continue
        [
            [
                DEFAULT
            |
                [CASE | START] #continue CONSTANT_STRING
            ]
            ':'
            [instruction]*
        ]*
        '}';
assignment_expression    ::=
        '{'
        #continue
        [
            assignment_expression
            [',' #continue assignment_expression]*
        ]?
        '}'
    |
        expression
    ;
instruction<"local">    ::= #continue variable_expression ['=' #continue assignment_expression]? ';';
instruction<"global">    ::= #continue variable_expression ['=' #continue assignment_expression]? ';';
instruction<"localref">    ::= #continue variable_expression '=' variable_expression ';';
instruction<"setall">    ::= #continue variable_expression '=' variable_expression ';';
instruction<"merge">    ::= #continue variable_expression '=' variable_expression ';';
instruction<"set">    ::= #continue variable_expression ["+=" | '='] assignment_expression ';';
instruction<"insert">    ::= #continue variable_expression [["+=" | '='] #continue assignment_expression]? ';';
instruction<"ref">    ::= #continue variable_expression '=' variable_expression ';';
instruction<"pushItem">    ::= #continue variable_expression ['=' #continue expression]? ';';
instruction<"foreach">    ::= #continue #readIdentifier
        IN
        [
                [REVERSE]?
                SORTED
                [NO_CASE]?
            |
                CASCADING
                [#readIdentifier:{"first", "last"}]?
        ]*
        variable_expression
        instruction
        ;
instruction<"continue">    ::= #continue ';';
instruction<"break">    ::= #continue ';';
instruction<"forfile">    ::= #continue #readIdentifier
        IN
        [
                [REVERSE]?
                SORTED
                [NO_CASE]?
            |
                CASCADING
                [#readIdentifier:{"first", "last"}]?
        ]*
        expression
        instruction
        ;
instruction<"select">    ::= #continue #readIdentifier
        IN
        [SORTED]?
        motif_expression
        instruction
        ;
motif_expression    ::=
        [
                '(' #continue motif_expression ')'
            |
                motif_and_expression
        ]
        [
            ["||" | '|']
            #continue
            motif_and_expression
        ]*;
motif_and_expression    ::=    motif_concat_expression [["&&" | '&'] #continue motif_concat_expression]*;
motif_concat_expression    ::= motif_path_expression ['+' #continue motif_path_expression]*;
motif_path_expression    ::=
        motif_step_expression
        [
                "..." #continue motif_ellipsis_expression
            |
                '.' #continue motif_step_expression
        ]*;
motif_ellipsis_expression    ::= motif_step_expression;
motif_step_expression    ::=
        #continue
        ['*' | #readIdentifier]
        ['[' [expression]? ']']*
        ;
instruction<"function">    ::= #continue #readIdentifier ['<' #continue CONSTANT_STRING '>']? '(' [function_parameter [',' #continue function_parameter]*]? ')' function_body;
classical_function_definition    ::= #readIdentifier '(' #continue function_parameters ')' function_body;
instantiated_template_function_definition    ::= #readIdentifier '<' #continue CONSTANT_STRING '>' #continue '(' function_parameters ')' function_body;
generic_template_function_definition    ::= #readIdentifier '<' #continue #readIdentifier '>' #continue '(' function_parameters ')' [template_function_body | function_body];
function_parameters    ::= [function_parameter [',' #continue function_parameter]*]?;
function_parameter    ::=    #readIdentifier [':' #continue function_parameter_type]?;
function_parameter_type    ::= #readIdentifier:{"value", "variable", "node", "reference", "index"};
function_body    ::=    #continue '{' [instruction]* '}';
template_function_body    ::=
        "{{" #continue
        [
            STARTING_RAW_TEXT
            #continue
            #ignore
            [
                    !preprocessor expression
                    [STARTING_TAG | '}' #break]
                |
                    [instruction]*
                    [STARTING_TAG | '}' #break]
            ]
        ]+
        '}'
        ;
instruction<"declare">    ::= #continue FUNCTION #readIdentifier ['<' #continue CONSTANT_STRING '>']? '(' [function_parameter [',' #continue function_parameter]*]? ')' ';';
instruction<"external">    ::= #continue FUNCTION #readIdentifier ['<' #continue CONSTANT_STRING '>']? '(' [function_parameter [',' #continue function_parameter]*]? ')' ';';
instruction<"readonlyHook">    ::= #continue '(' #readIdentifier ')' function_body;
instruction<"writefileHook">    ::= #continue '(' #readIdentifier ',' #readIdentifier ',' #readIdentifier ')' function_body;
instruction<"stepintoHook">    ::= #continue '(' #readIdentifier ',' #readIdentifier ')' function_body;
instruction<"stepoutHook">    ::= #continue '(' #readIdentifier ',' #readIdentifier ',' #readIdentifier ')' function_body;
instruction<"return">    ::= #continue [expression]? ';';
instruction<"try">    ::= #continue instruction "catch" '(' variable_expression ')' instruction;
instruction<"finally">    ::= #continue instruction;
instruction<"nop">    ::= #continue '(' function_call ')' ';';
instruction<"jointpoint">    ::=
    #continue
    [#readIdentifier:"iterate"]?
    #readIdentifier
    ['(' #continue variable_expression ')']?
    [';' | instruction]
    ;
instruction<"advice">    ::=
    #continue
    ADVICE_TYPE
    ['(' #continue #readIdentifier ')']?
    ':' expression
    instruction
    ;
instruction<"file_as_standard_input">    ::= #continue '(' expression ')' instruction;
instruction<"string_as_standard_input">    ::= #continue '(' expression ')' instruction;
instruction<"quiet">    ::= #continue '(' variable_expression ')' instruction;
instruction<"delay">    ::= #continue instruction;
instruction<"debug">    ::= #continue instruction;
instruction<"quantify">    ::= #continue ['(' #continue expression ')']? instruction;
instruction<"new_project">    ::= #continue instruction;
instruction<"parsed_file">    ::= #continue '(' expression ')' instruction;
instruction<"parsed_string">    ::= #continue '(' expression ')' instruction;
instruction<"generated_file">    ::= #continue '(' expression ')' instruction;
instruction<"appended_file">    ::= #continue '(' expression ')' instruction;
instruction<"generated_string">    ::= #continue '(' variable_expression ')' instruction;
PLUS    ::= '+' #!ignore !'=';
CONCAT    ::= '+' #!ignore !'=';
DEFAULT    ::= #readIdentifier:"default";
CASE    ::= #readIdentifier:"case";
START    ::= #readIdentifier:"start";
CASCADING    ::= #readIdentifier:"cascading";
ELSE    ::= #readIdentifier:"else";
IN        ::= #readIdentifier:"in";
INSET    ::= #readIdentifier:"in";
NO_CASE    ::= #readIdentifier:"no_case";
REVERSE    ::= #readIdentifier:"reverse";
SORTED    ::= #readIdentifier:"sorted";
WHILE    ::= #readIdentifier:"while";
CONSTANT_STRING    ::= #readCString;
CONSTANT_CHAR    ::= '\'' #!ignore #continue ['\\']? #readChar '\'';
VARIABLE_SPECIAL_ACCESSOR ::= #readIdentifier:{"front", "back", "parent"};
FUNCTION_KEYWORD    ::= [FUNCTION | DECLARE | EXTERNAL | WRITEFILE_HOOK | READONLY_HOOK | STEPINTO_HOOK | STEPOUT_HOOK];
FUNCTION    ::= #readIdentifier:"function";
DECLARE        ::= #readIdentifier:"declare";
EXTERNAL    ::= #readIdentifier:"external";
WRITEFILE_HOOK    ::= #readIdentifier:"writefileHook";
READONLY_HOOK    ::= #readIdentifier:"readonlyHook";
STEPINTO_HOOK    ::= #readIdentifier:"stepintoHook";
STEPOUT_HOOK    ::= #readIdentifier:"stepoutHook";
PRULE_SYMBOL    ::= "::=";
NON_TERMINAL    ::=    #readIdentifier;
ALTERNATION        ::= '|';
TR_BEGIN        ::= '<';
TR_END            ::= '>';
PIPESUP            ::= "|>";
ANDOR            ::= "&|";
ADVICE_TYPE        ::=    #readIdentifier:{"before", "before_iteration", "around", "around_iteration", "after", "after_iteration"};
STARTING_RAW_TEXT    ::= ->['@' | "<%"];
STARTING_ENDING_RAW_TEXT    ::= ->['@' | "<%" | #empty];
STARTING_TAG    ::= ['@' | "%>"];
STARTING_TAG_OR_END    ::= ['@' | "%>" | #empty];
BNF_general_directive    ::=
        '#'
        #readIdentifier:sKeyword
        BNF_general_directive<sKeyword>
        ;
BNF_general_directive<T>    ::= preprocessor<T>;
BNF_general_directive<"noCase">    ::= #check(true);
BNF_general_directive<"trace">    ::= #check(true);
BNF_general_directive<"ignore">    ::=
        #continue
        ['[' #continue #readCString ']']?
        PRULE_SYMBOL right_side_production_rule
        ;
BNF_general_directive<"overload">    ::=
        '#' #continue #readIdentifier:"ignore" BNF_general_directive<"ignore">
    |
        production_rule;
BNF_general_directive<"implicitCopy">    ::= ['(' #continue #readIdentifier ['<' #continue CONSTANT_STRING '>']? ')']?;
BNF_general_directive<"explicitCopy">    ::= #check(true);
BNF_general_directive<"parameters">    ::=
        #continue #readIdentifier '('
        [clause_parameter [',' #continue clause_parameter]*]?
        ')' expression;
BNF_general_directive<"transformRules">    ::=
        #continue
        expression 
        '{' #continue [BNF_instruction]* '}' 
        '{' #continue [BNF_instruction]* '}' 
        ;
BNF_general_directive<"applyBNFRule">    ::=
        #continue
        BNF_clause_call
        ;
production_rule    ::=
        NON_TERMINAL
        #continue
        [
            TR_BEGIN
            #continue
            [
                    #readIdentifier
                |
                    CONSTANT_STRING
            ]
            TR_END
        ]?
        [
            '('
            #continue
            [
                clause_parameter
                [',' #continue clause_parameter]*
            ]?
            ')'
        ]?
        [
            ':'
            BNF_clause_return_value
        ]?
        [BNF_clause_preprocessing]?
        PRULE_SYMBOL right_side_production_rule
        ;
BNF_clause_return_value    ::= #readIdentifier:{"value", "node", "list"};
BNF_clause_preprocessing    ::=
        ':' '#'
        #continue
        [
                '!'
                #continue
                #readIdentifier:"ignore"
            |
                #readIdentifier:"ignore"
                ['(' #continue [#readCString | BNF_ignore_type] ')']?
        ];
BNF_ignore_type    ::= "C++/Doxygen" | "C++" | "JAVA" | "HTML" | "XML" | "blanks" | "LaTeX";
clause_parameter    ::=    #readIdentifier #continue ':' clause_parameter_type;
clause_parameter_type    ::= #readIdentifier:{"node", "value", "variable", "reference"};
right_side_production_rule    ::= BNF_sequence #continue [ALTERNATION #continue BNF_sequence]* ';';
BNF_sequence    ::= [BNF_literal]+;
BNF_literal    ::=    BNF_literal<true>;
BNF_literal<bTokenCondition>    ::=
    [
            CONSTANT_STRING
            [#check(bTokenCondition) BNF_variable_assignation]?
        |
            CONSTANT_CHAR
            [
                    ".." #continue CONSTANT_CHAR
                    [#check(bTokenCondition) BNF_token_post_processing]?
                |
                    [#check(bTokenCondition) BNF_variable_assignation]?
            ]
        |
            [
                    '~'
                |
                    '^'
                |
                    '!'
                |
                    "->"
                    [multiplicity]?
                    [
                        '('    #continue
                        [BNF_variable_assignation]?
                        ['-' BNF_variable_assignation]?
                        [BNF_sequence]?
                        ')'
                    ]?
            ]
            #continue BNF_literal<false>
            [#check(bTokenCondition) BNF_token_post_processing]?
        |
            '[' #continue BNF_sequence [ALTERNATION #continue BNF_sequence]* ']'
            [multiplicity]?
            [#check(bTokenCondition) BNF_token_post_processing]?
        |
            '#'
            #continue
            [
                    '!'
                    #continue
                    #readIdentifier:"ignore"
                |
                    #readIdentifier:sDirective
                    BNF_directive<sDirective>:bTokenConditionAllowed
                    [
                        #check(bTokenCondition && bTokenConditionAllowed)
                        BNF_token_post_processing
                    ]?
            ]
        |
            "=>" #continue instruction
        |
            BNF_clause_call
            [#check(bTokenCondition) BNF_token_post_processing]?
    ]
    [
        [PIPESUP | ANDOR]
        #continue
        BNF_literal<bTokenCondition>
    ]?
    ;
BNF_variable_assignation    ::= [':' | ":+"] #continue variable_expression;
multiplicity    ::=
            '?' | '+' | '*'
        |
            "#repeat" #continue '(' expression [',' #continue expression]? ')'
        |
            #readInteger [".." #continue [#readInteger | '*']]?
        ;
BNF_directive<"continue"> : value    ::= #check(true);
BNF_directive<"noCase"> : value    ::= #check(true);
BNF_directive<"nextStep"> : value    ::= #check(true);
BNF_directive<"ratchet"> : value    ::= #check(true);
BNF_directive<"super"> : value    ::=
        #continue "::" ['#' #continue "super" "::"]* BNF_clause_call
        => set BNF_directive = true;
        ;
BNF_directive<"try"> : value    ::=
        #continue
        [!['#' #readIdentifier:"catch"] #continue BNF_literal]+
        BNF_catch;
BNF_catch    ::= '#' "catch" '(' variable_expression ')';
BNF_directive<"parsedFile"> : value    ::= #continue '(' expression ')' BNF_sequence;
BNF_directive<"parsedString"> : value    ::= #continue '(' expression ')' BNF_sequence;
BNF_directive<"generatedFile"> : value    ::= #continue '(' expression ')' BNF_sequence;
BNF_directive<"generatedString"> : value    ::= #continue '(' variable_expression ')' BNF_sequence;
BNF_directive<"appendedFile"> : value    ::= #continue '(' expression ')' BNF_sequence;
BNF_directive<"ignore"> : value    ::= ['(' #continue [#readCString | BNF_ignore_type] ')']?;
BNF_directive<"break"> : value    ::= #check(true);
BNF_directive<"empty"> : value    ::= #check(true);
BNF_directive<"pushItem"> : value    ::= #continue '(' variable_expression ')';
BNF_directive<"insert"> : value    ::= #continue '(' variable_expression ')';
BNF_directive<"EOL"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readByte"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readBytes"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readChar"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readChars"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readCString"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readPythonString"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readIdentifier"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readCompleteIdentifier"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readInteger"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readNetworkLong"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readNetworkShort"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readBinaryLong"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readBinaryShort"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readNumeric"> : value    ::= => { set BNF_directive = true; };
BNF_directive<"readText"> : value    ::= #continue '(' expression ')' => { set BNF_directive = true; };
BNF_directive<"skipIgnore"> : value    ::= ['(' #continue [#readCString | BNF_ignore_type] ')']?;
BNF_directive<"check"> : value    ::= #continue '(' expression ')';
BNF_directive<"implicitCopy"> : value    ::= #check(true);
BNF_directive<"explicitCopy"> : value    ::= #check(true);
BNF_clause_call    ::=
        NON_TERMINAL
        [TR_BEGIN #continue concatenation_expression TR_END]?
        ['(' #continue [expression [',' #continue expression]*]? ')']?
        ;
BNF_token_post_processing    ::=
        [
            ':'
            [
                    '{' #continue CONSTANT_STRING [',' #continue CONSTANT_STRING]* '}'
                |
                    CONSTANT_STRING
            ]
        ]?
        [BNF_variable_assignation]?;
predefined_function_call<T>    ::= #check(false);
predefined_function_call<"flushOutputToSocket">    ::=    '(' #continue expression ')';
predefined_function_call<"acceptSocket">    ::=    '(' #continue expression ')';
predefined_function_call<"add">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"addGenerationTagsHandler">    ::=    '(' #continue expression ',' script_file_expression<"BNF"> ',' script_file_expression<"pattern"> ')';
predefined_function_call<"addToDate">    ::=    '(' #continue expression ',' expression ',' expression ')';
predefined_function_call<"byteToChar">    ::=    '(' #continue expression ')';
predefined_function_call<"bytesToLong">    ::=    '(' #continue expression ')';
predefined_function_call<"bytesToShort">    ::=    '(' #continue expression ')';
predefined_function_call<"canonizePath">    ::=    '(' #continue expression ')';
predefined_function_call<"changeDirectory">    ::=    '(' #continue expression ')';
predefined_function_call<"changeFileTime">    ::=    '(' #continue expression ',' expression ',' expression ')';
predefined_function_call<"charAt">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"charToByte">    ::=    '(' #continue expression ')';
predefined_function_call<"charToInt">    ::=    '(' #continue expression ')';
predefined_function_call<"chmod">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"ceil">    ::=    '(' #continue expression ')';
predefined_function_call<"compareDate">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"completeDate">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"completeLeftSpaces">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"completeRightSpaces">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"composeAdaLikeString">    ::=    '(' #continue expression ')';
predefined_function_call<"composeCLikeString">    ::=    '(' #continue expression ')';
predefined_function_call<"composeHTMLLikeString">    ::=    '(' #continue expression ')';
predefined_function_call<"composeSQLLikeString">    ::=    '(' #continue expression ')';
predefined_function_call<"computeMD5">    ::=    '(' #continue expression ')';
predefined_function_call<"copySmartFile">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"coreString">    ::=    '(' #continue expression ',' expression ',' expression ')';
predefined_function_call<"countStringOccurences">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"createDirectory">    ::=    '(' #continue expression ')';
predefined_function_call<"createINETClientSocket">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"createINETServerSocket">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"createIterator">    ::=    '(' #continue #readIdentifier ',' variable_expression ')';
predefined_function_call<"createReverseIterator">    ::=    '(' #continue #readIdentifier ',' variable_expression ')';
predefined_function_call<"createVirtualFile">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"createVirtualTemporaryFile">    ::=    '(' #continue expression ')';
predefined_function_call<"decodeURL">    ::=    '(' #continue expression ')';
predefined_function_call<"decrement">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"deleteFile">    ::=    '(' #continue expression ')';
predefined_function_call<"deleteVirtualFile">    ::=    '(' #continue expression ')';
predefined_function_call<"div">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"duplicateIterator">    ::=    '(' #continue #readIdentifier ',' variable_expression ')';
predefined_function_call<"encodeURL">    ::=    '(' #continue expression ')';
predefined_function_call<"endl">    ::=    '(' #continue ')';
predefined_function_call<"endString">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"equal">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"equalsIgnoreCase">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"equalTrees">    ::=    '(' #continue variable_expression ',' variable_expression ')';
predefined_function_call<"executeStringQuiet">    ::=    '(' #continue variable_expression ',' expression ')';
predefined_function_call<"existDirectory">    ::=    '(' #continue expression ')';
predefined_function_call<"existEnv">    ::=    '(' #continue expression ')';
predefined_function_call<"existFile">    ::=    '(' #continue expression ')';
predefined_function_call<"existVirtualFile">    ::=    '(' #continue expression ')';
predefined_function_call<"existVariable">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"exp">    ::=    '(' #continue expression ')';
predefined_function_call<"exploreDirectory">    ::=    '(' #continue variable_expression ',' expression ',' expression ')';
predefined_function_call<"extractGenerationHeader">    ::=    '(' #continue expression ',' variable_expression ',' variable_expression ',' variable_expression ')';
predefined_function_call<"fileCreation">    ::=    '(' #continue expression ')';
predefined_function_call<"fileLastAccess">    ::=    '(' #continue expression ')';
predefined_function_call<"fileLastModification">    ::=    '(' #continue expression ')';
predefined_function_call<"fileLines">    ::=    '(' #continue expression ')';
predefined_function_call<"fileMode">    ::=    '(' #continue expression ')';
predefined_function_call<"fileSize">    ::=    '(' #continue expression ')';
predefined_function_call<"findElement">    ::=    '(' #continue expression ',' variable_expression ')';
predefined_function_call<"findFirstChar">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"findFirstSubstringIntoKeys">    ::=    '(' #continue expression ',' variable_expression ')';
predefined_function_call<"findLastString">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"findNextString">    ::=    '(' #continue expression ',' expression ',' expression ')';
predefined_function_call<"findNextSubstringIntoKeys">    ::=    '(' #continue expression ',' variable_expression ',' expression ')';
predefined_function_call<"findString">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"first">    ::=    '(' #continue #readIdentifier ')';
predefined_function_call<"floor">    ::=    '(' #continue expression ')';
predefined_function_call<"formatDate">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"getArraySize">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"getCommentBegin">    ::=    '(' #continue ')';
predefined_function_call<"getCommentEnd">    ::=    '(' #continue ')';
predefined_function_call<"getCurrentDirectory">    ::=    '(' #continue ')';
predefined_function_call<"getEnv">    ::=    '(' #continue expression ')';
predefined_function_call<"getGenerationHeader">    ::=    '(' #continue ')';
predefined_function_call<"getHTTPRequest">    ::=    '(' #continue expression ',' variable_expression ',' variable_expression ')';
predefined_function_call<"getIncludePath">    ::=    '(' #continue ')';
predefined_function_call<"getLastDelay">    ::=    '(' #continue ')';
predefined_function_call<"getNow">    ::=    '(' #continue ')';
predefined_function_call<"getProperty">    ::=    '(' #continue expression ')';
predefined_function_call<"getShortFilename">    ::=    '(' #continue expression ')';
predefined_function_call<"getTextMode">    ::=    '(' #continue ')';
predefined_function_call<"getVariableAttributes">    ::=    '(' #continue variable_expression ',' variable_expression ')';
predefined_function_call<"getVersion">    ::=    '(' #continue ')';
predefined_function_call<"getWorkingPath">    ::=    '(' #continue ')';
predefined_function_call<"getWriteMode">    ::=    '(' #continue ')';
predefined_function_call<"hexaToDecimal">    ::=    '(' #continue expression ')';
predefined_function_call<"hostToNetworkLong">    ::=    '(' #continue expression ')';
predefined_function_call<"hostToNetworkShort">    ::=    '(' #continue expression ')';
predefined_function_call<"increment">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"indentFile">    ::=    '(' #continue expression [',' expression]? ')';
predefined_function_call<"index">    ::=    '(' #continue #readIdentifier ')';
predefined_function_call<"inf">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"inputKey">    ::=    '(' #continue expression ')';
predefined_function_call<"inputLine">    ::=    '(' #continue expression [',' expression]? ')';
predefined_function_call<"isEmpty">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"isIdentifier">    ::=    '(' #continue expression ')';
predefined_function_call<"isNegative">    ::=    '(' #continue expression ')';
predefined_function_call<"isNumeric">    ::=    '(' #continue expression ')';
predefined_function_call<"isPositive">    ::=    '(' #continue expression ')';
predefined_function_call<"joinStrings">    ::=    '(' #continue variable_expression ',' expression ')';
predefined_function_call<"key">    ::=    '(' #continue #readIdentifier ')';
predefined_function_call<"last">    ::=    '(' #continue #readIdentifier ')';
predefined_function_call<"leftString">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"lengthString">    ::=    '(' #continue expression ')';
predefined_function_call<"loadBinaryFile">    ::=    '(' #continue expression [',' expression]? ')';
predefined_function_call<"loadFile">    ::=    '(' #continue expression [',' expression]? ')';
predefined_function_call<"loadVirtualFile">    ::=    '(' #continue expression ')';
predefined_function_call<"log">    ::=    '(' #continue expression ')';
predefined_function_call<"longToBytes">    ::=    '(' #continue expression ')';
predefined_function_call<"midString">    ::=    '(' #continue expression ',' expression ',' expression ')';
predefined_function_call<"mod">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"mult">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"networkLongToHost">    ::=    '(' #continue expression ')';
predefined_function_call<"networkShortToHost">    ::=    '(' #continue expression ')';
predefined_function_call<"next">    ::=    '(' #continue #readIdentifier ')';
predefined_function_call<"not">    ::=    '(' #continue expression ')';
predefined_function_call<"octalToDecimal">    ::=    '(' #continue expression ')';
predefined_function_call<"parseFreeQuiet">    ::=    '(' #continue expression ',' variable_expression ',' expression ')';
predefined_function_call<"pathFromPackage">    ::=    '(' #continue expression ')';
predefined_function_call<"postHTTPRequest">    ::=    '(' #continue expression ',' variable_expression ',' variable_expression ')';
predefined_function_call<"pow">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"prec">    ::=    '(' #continue #readIdentifier ')';
predefined_function_call<"randomInteger">    ::=    '(' #continue ')';
predefined_function_call<"receiveBinaryFromSocket">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"receiveFromSocket">    ::=    '(' #continue expression ',' variable_expression ')';
predefined_function_call<"receiveTextFromSocket">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"relativePath">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"removeDirectory">    ::=    '(' #continue expression ')';
predefined_function_call<"removeGenerationTagsHandler">    ::=    '(' #continue expression ')';
predefined_function_call<"repeatString">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"replaceString">    ::=    '(' #continue expression ',' expression ',' expression ')';
predefined_function_call<"replaceTabulations">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"resolveFilePath">    ::=    '(' #continue expression ')';
predefined_function_call<"rightString">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"rsubString">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"scanDirectories">    ::=    '(' #continue variable_expression ',' expression ',' expression ')';
predefined_function_call<"scanFiles">    ::=    '(' #continue variable_expression ',' expression ',' expression ',' expression ')';
predefined_function_call<"sendBinaryToSocket">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"sendHTTPRequest">    ::=    '(' #continue expression ',' variable_expression ')';
predefined_function_call<"sendTextToSocket">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"selectGenerationTagsHandler">    ::=    '(' #continue expression ')';
predefined_function_call<"shortToBytes">    ::=    '(' #continue expression ')';
predefined_function_call<"sqrt">    ::=    '(' #continue expression ')';
predefined_function_call<"startString">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"sub">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"subString">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"sup">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"system">    ::=    '(' #continue expression ')';
predefined_function_call<"toLowerString">    ::=    '(' #continue expression ')';
predefined_function_call<"toUpperString">    ::=    '(' #continue expression ')';
predefined_function_call<"translateString">    ::=    '(' #continue script_file_expression<"translate"> ',' variable_expression ',' expression ')';
predefined_function_call<"trimLeft">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"trimRight">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"trim">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"truncateAfterString">    ::=    '(' #continue variable_expression ',' expression ')';
predefined_function_call<"truncateBeforeString">    ::=    '(' #continue variable_expression ',' expression ')';
predefined_function_call<"UUID">    ::=    '(' #continue ')';
predefined_function_call<"countInputCols">    ::=    '(' #continue ')';
predefined_function_call<"countInputLines">    ::=    '(' #continue ')';
predefined_function_call<"getInputFilename">    ::=    '(' #continue ')';
predefined_function_call<"getLastReadChars">    ::=    '(' #continue expression ')';
predefined_function_call<"getInputLocation">    ::=    '(' #continue ')';
predefined_function_call<"lookAhead">    ::=    '(' #continue expression ')';
predefined_function_call<"peekChar">    ::=    '(' #continue ')';
predefined_function_call<"readAdaString">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"readByte">    ::=    '(' #continue ')';
predefined_function_call<"readBytes">    ::=    '(' #continue expression ')';
predefined_function_call<"readCChar">    ::=    '(' #continue ')';
predefined_function_call<"readChar">    ::=    '(' #continue ')';
predefined_function_call<"readCharAsInt">    ::=    '(' #continue ')';
predefined_function_call<"readChars">    ::=    '(' #continue expression ')';
predefined_function_call<"readIdentifier">    ::=    '(' #continue ')';
predefined_function_call<"readIfEqualTo">    ::=    '(' #continue expression ')';
predefined_function_call<"readIfEqualToIgnoreCase">    ::=    '(' #continue expression ')';
predefined_function_call<"readIfEqualToIdentifier">    ::=    '(' #continue expression ')';
predefined_function_call<"readLine">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"readNextText">    ::=    '(' #continue expression ')';
predefined_function_call<"readNumber">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"readPythonString">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"readString">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"readUptoJustOneChar">    ::=    '(' #continue expression ')';
predefined_function_call<"readWord">    ::=    '(' #continue ')';
predefined_function_call<"skipBlanks">    ::=    '(' #continue ')';
predefined_function_call<"skipSpaces">    ::=    '(' #continue ')';
predefined_function_call<"skipEmptyCpp">    ::=    '(' #continue ')';
predefined_function_call<"skipEmptyCppExceptDoxygen">    ::=    '(' #continue ')';
predefined_function_call<"skipEmptyHTML">    ::=    '(' #continue ')';
predefined_function_call<"skipEmptyLaTeX">    ::=    '(' #continue ')';
predefined_function_call<"countOutputCols">    ::=    '(' #continue ')';
predefined_function_call<"countOutputLines">    ::=    '(' #continue ')';
predefined_function_call<"decrementIndentLevel">    ::=    '(' #continue [ expression]? ')';
predefined_function_call<"equalLastWrittenChars">    ::=    '(' #continue expression ')';
predefined_function_call<"existFloatingLocation">    ::=    '(' #continue expression ',' expression ')';
predefined_function_call<"getFloatingLocation">    ::=    '(' #continue expression ')';
predefined_function_call<"getLastWrittenChars">    ::=    '(' #continue expression ')';
predefined_function_call<"getMarkupKey">    ::=    '(' #continue ')';
predefined_function_call<"getMarkupValue">    ::=    '(' #continue ')';
predefined_function_call<"getOutputFilename">    ::=    '(' #continue ')';
predefined_function_call<"getOutputLocation">    ::=    '(' #continue ')';
predefined_function_call<"getProtectedArea">    ::=    '(' #continue expression ')';
predefined_function_call<"getProtectedAreaKeys">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"indentText">    ::=    '(' #continue expression ')';
predefined_function_call<"newFloatingLocation">    ::=    '(' #continue expression ')';
predefined_function_call<"remainingProtectedAreas">    ::=    '(' #continue variable_expression ')';
predefined_function_call<"removeFloatingLocation">    ::=    '(' #continue expression ')';
predefined_function_call<"removeProtectedArea">    ::=    '(' #continue expression ')';
predefined_method_call<T> : value    ::= #check(false);
predefined_method_call<"flushOutputToSocket"> : value    ::=    '(' #continue ')' => set predefined_method_call = "flushOutputToSocket"; ;
predefined_method_call<"acceptSocket"> : value    ::=    '(' #continue ')' => set predefined_method_call = "acceptSocket"; ;
predefined_method_call<"add"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "add"; ;
predefined_method_call<"addGenerationTagsHandler"> : value    ::=    '(' #continue script_file_expression<"BNF"> ',' script_file_expression<"pattern"> ')' => set predefined_method_call = "addGenerationTagsHandler"; ;
predefined_method_call<"addToDate"> : value    ::=    '(' #continue expression ',' expression ')' => set predefined_method_call = "addToDate"; ;
predefined_method_call<"byteToChar"> : value    ::=    '(' #continue ')' => set predefined_method_call = "byteToChar"; ;
predefined_method_call<"bytesToLong"> : value    ::=    '(' #continue ')' => set predefined_method_call = "bytesToLong"; ;
predefined_method_call<"bytesToShort"> : value    ::=    '(' #continue ')' => set predefined_method_call = "bytesToShort"; ;
predefined_method_call<"canonizePath"> : value    ::=    '(' #continue ')' => set predefined_method_call = "canonizePath"; ;
predefined_method_call<"changeDirectory"> : value    ::=    '(' #continue ')' => set predefined_method_call = "changeDirectory"; ;
predefined_method_call<"changeFileTime"> : value    ::=    '(' #continue expression ',' expression ')' => set predefined_method_call = "changeFileTime"; ;
predefined_method_call<"charAt"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "charAt"; ;
predefined_method_call<"charToByte"> : value    ::=    '(' #continue ')' => set predefined_method_call = "charToByte"; ;
predefined_method_call<"charToInt"> : value    ::=    '(' #continue ')' => set predefined_method_call = "charToInt"; ;
predefined_method_call<"chmod"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "chmod"; ;
predefined_method_call<"ceil"> : value    ::=    '(' #continue ')' => set predefined_method_call = "ceil"; ;
predefined_method_call<"compareDate"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "compareDate"; ;
predefined_method_call<"completeDate"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "completeDate"; ;
predefined_method_call<"completeLeftSpaces"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "completeLeftSpaces"; ;
predefined_method_call<"completeRightSpaces"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "completeRightSpaces"; ;
predefined_method_call<"composeAdaLikeString"> : value    ::=    '(' #continue ')' => set predefined_method_call = "composeAdaLikeString"; ;
predefined_method_call<"composeCLikeString"> : value    ::=    '(' #continue ')' => set predefined_method_call = "composeCLikeString"; ;
predefined_method_call<"composeHTMLLikeString"> : value    ::=    '(' #continue ')' => set predefined_method_call = "composeHTMLLikeString"; ;
predefined_method_call<"composeSQLLikeString"> : value    ::=    '(' #continue ')' => set predefined_method_call = "composeSQLLikeString"; ;
predefined_method_call<"computeMD5"> : value    ::=    '(' #continue ')' => set predefined_method_call = "computeMD5"; ;
predefined_method_call<"copySmartFile"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "copySmartFile"; ;
predefined_method_call<"coreString"> : value    ::=    '(' #continue expression ',' expression ')' => set predefined_method_call = "coreString"; ;
predefined_method_call<"countStringOccurences"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "countStringOccurences"; ;
predefined_method_call<"createDirectory"> : value    ::=    '(' #continue ')' => set predefined_method_call = "createDirectory"; ;
predefined_method_call<"createINETClientSocket"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "createINETClientSocket"; ;
predefined_method_call<"createINETServerSocket"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "createINETServerSocket"; ;
predefined_method_call<"createIterator"> : value    ::=    '(' #continue variable_expression ')' => set predefined_method_call = "createIterator"; ;
predefined_method_call<"createReverseIterator"> : value    ::=    '(' #continue variable_expression ')' => set predefined_method_call = "createReverseIterator"; ;
predefined_method_call<"createVirtualFile"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "createVirtualFile"; ;
predefined_method_call<"createVirtualTemporaryFile"> : value    ::=    '(' #continue ')' => set predefined_method_call = "createVirtualTemporaryFile"; ;
predefined_method_call<"decodeURL"> : value    ::=    '(' #continue ')' => set predefined_method_call = "decodeURL"; ;
predefined_method_call<"decrement"> : value    ::=    '(' #continue ')' => set predefined_method_call = "decrement"; ;
predefined_method_call<"deleteFile"> : value    ::=    '(' #continue ')' => set predefined_method_call = "deleteFile"; ;
predefined_method_call<"deleteVirtualFile"> : value    ::=    '(' #continue ')' => set predefined_method_call = "deleteVirtualFile"; ;
predefined_method_call<"div"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "div"; ;
predefined_method_call<"duplicateIterator"> : value    ::=    '(' #continue variable_expression ')' => set predefined_method_call = "duplicateIterator"; ;
predefined_method_call<"encodeURL"> : value    ::=    '(' #continue ')' => set predefined_method_call = "encodeURL"; ;
predefined_method_call<"endString"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "endString"; ;
predefined_method_call<"equal"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "equal"; ;
predefined_method_call<"equalsIgnoreCase"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "equalsIgnoreCase"; ;
predefined_method_call<"equalTrees"> : value    ::=    '(' #continue variable_expression ')' => set predefined_method_call = "equalTrees"; ;
predefined_method_call<"executeStringQuiet"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "executeStringQuiet"; ;
predefined_method_call<"existDirectory"> : value    ::=    '(' #continue ')' => set predefined_method_call = "existDirectory"; ;
predefined_method_call<"existEnv"> : value    ::=    '(' #continue ')' => set predefined_method_call = "existEnv"; ;
predefined_method_call<"existFile"> : value    ::=    '(' #continue ')' => set predefined_method_call = "existFile"; ;
predefined_method_call<"existVirtualFile"> : value    ::=    '(' #continue ')' => set predefined_method_call = "existVirtualFile"; ;
predefined_method_call<"existVariable"> : value    ::=    '(' #continue ')' => set predefined_method_call = "existVariable"; ;
predefined_method_call<"exp"> : value    ::=    '(' #continue ')' => set predefined_method_call = "exp"; ;
predefined_method_call<"exploreDirectory"> : value    ::=    '(' #continue expression ',' expression ')' => set predefined_method_call = "exploreDirectory"; ;
predefined_method_call<"extractGenerationHeader"> : value    ::=    '(' #continue variable_expression ',' variable_expression ',' variable_expression ')' => set predefined_method_call = "extractGenerationHeader"; ;
predefined_method_call<"fileCreation"> : value    ::=    '(' #continue ')' => set predefined_method_call = "fileCreation"; ;
predefined_method_call<"fileLastAccess"> : value    ::=    '(' #continue ')' => set predefined_method_call = "fileLastAccess"; ;
predefined_method_call<"fileLastModification"> : value    ::=    '(' #continue ')' => set predefined_method_call = "fileLastModification"; ;
predefined_method_call<"fileLines"> : value    ::=    '(' #continue ')' => set predefined_method_call = "fileLines"; ;
predefined_method_call<"fileMode"> : value    ::=    '(' #continue ')' => set predefined_method_call = "fileMode"; ;
predefined_method_call<"fileSize"> : value    ::=    '(' #continue ')' => set predefined_method_call = "fileSize"; ;
predefined_method_call<"findElement"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "findElement"; ;
predefined_method_call<"findFirstChar"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "findFirstChar"; ;
predefined_method_call<"findFirstSubstringIntoKeys"> : value    ::=    '(' #continue variable_expression ')' => set predefined_method_call = "findFirstSubstringIntoKeys"; ;
predefined_method_call<"findLastString"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "findLastString"; ;
predefined_method_call<"findNextString"> : value    ::=    '(' #continue expression ',' expression ')' => set predefined_method_call = "findNextString"; ;
predefined_method_call<"findNextSubstringIntoKeys"> : value    ::=    '(' #continue variable_expression ',' expression ')' => set predefined_method_call = "findNextSubstringIntoKeys"; ;
predefined_method_call<"findString"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "findString"; ;
predefined_method_call<"first"> : value    ::=    '(' #continue ')' => set predefined_method_call = "first"; ;
predefined_method_call<"floor"> : value    ::=    '(' #continue ')' => set predefined_method_call = "floor"; ;
predefined_method_call<"formatDate"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "formatDate"; ;
predefined_method_call<"size"> : value    ::=    '(' #continue ')' => set predefined_method_call = "getArraySize"; ;
predefined_method_call<"getArraySize"> : value    ::=    '(' #continue ')' => set predefined_method_call = "getArraySize"; ;
predefined_method_call<"getEnv"> : value    ::=    '(' #continue ')' => set predefined_method_call = "getEnv"; ;
predefined_method_call<"getHTTPRequest"> : value    ::=    '(' #continue variable_expression ',' variable_expression ')' => set predefined_method_call = "getHTTPRequest"; ;
predefined_method_call<"getProperty"> : value    ::=    '(' #continue ')' => set predefined_method_call = "getProperty"; ;
predefined_method_call<"getShortFilename"> : value    ::=    '(' #continue ')' => set predefined_method_call = "getShortFilename"; ;
predefined_method_call<"getVariableAttributes"> : value    ::=    '(' #continue variable_expression ')' => set predefined_method_call = "getVariableAttributes"; ;
predefined_method_call<"hexaToDecimal"> : value    ::=    '(' #continue ')' => set predefined_method_call = "hexaToDecimal"; ;
predefined_method_call<"hostToNetworkLong"> : value    ::=    '(' #continue ')' => set predefined_method_call = "hostToNetworkLong"; ;
predefined_method_call<"hostToNetworkShort"> : value    ::=    '(' #continue ')' => set predefined_method_call = "hostToNetworkShort"; ;
predefined_method_call<"increment"> : value    ::=    '(' #continue ')' => set predefined_method_call = "increment"; ;
predefined_method_call<"indentFile"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "indentFile"; ;
predefined_method_call<"index"> : value    ::=    '(' #continue ')' => set predefined_method_call = "index"; ;
predefined_method_call<"inf"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "inf"; ;
predefined_method_call<"inputKey"> : value    ::=    '(' #continue ')' => set predefined_method_call = "inputKey"; ;
predefined_method_call<"inputLine"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "inputLine"; ;
predefined_method_call<"empty"> : value    ::=    '(' #continue ')' => set predefined_method_call = "isEmpty"; ;
predefined_method_call<"isEmpty"> : value    ::=    '(' #continue ')' => set predefined_method_call = "isEmpty"; ;
predefined_method_call<"isIdentifier"> : value    ::=    '(' #continue ')' => set predefined_method_call = "isIdentifier"; ;
predefined_method_call<"isNegative"> : value    ::=    '(' #continue ')' => set predefined_method_call = "isNegative"; ;
predefined_method_call<"isNumeric"> : value    ::=    '(' #continue ')' => set predefined_method_call = "isNumeric"; ;
predefined_method_call<"isPositive"> : value    ::=    '(' #continue ')' => set predefined_method_call = "isPositive"; ;
predefined_method_call<"joinStrings"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "joinStrings"; ;
predefined_method_call<"key"> : value    ::=    '(' #continue ')' => set predefined_method_call = "key"; ;
predefined_method_call<"last"> : value    ::=    '(' #continue ')' => set predefined_method_call = "last"; ;
predefined_method_call<"leftString"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "leftString"; ;
predefined_method_call<"length"> : value    ::=    '(' #continue ')' => set predefined_method_call = "lengthString"; ;
predefined_method_call<"lengthString"> : value    ::=    '(' #continue ')' => set predefined_method_call = "lengthString"; ;
predefined_method_call<"loadBinaryFile"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "loadBinaryFile"; ;
predefined_method_call<"loadFile"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "loadFile"; ;
predefined_method_call<"loadVirtualFile"> : value    ::=    '(' #continue ')' => set predefined_method_call = "loadVirtualFile"; ;
predefined_method_call<"log"> : value    ::=    '(' #continue ')' => set predefined_method_call = "log"; ;
predefined_method_call<"longToBytes"> : value    ::=    '(' #continue ')' => set predefined_method_call = "longToBytes"; ;
predefined_method_call<"midString"> : value    ::=    '(' #continue expression ',' expression ')' => set predefined_method_call = "midString"; ;
predefined_method_call<"mod"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "mod"; ;
predefined_method_call<"mult"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "mult"; ;
predefined_method_call<"networkLongToHost"> : value    ::=    '(' #continue ')' => set predefined_method_call = "networkLongToHost"; ;
predefined_method_call<"networkShortToHost"> : value    ::=    '(' #continue ')' => set predefined_method_call = "networkShortToHost"; ;
predefined_method_call<"next"> : value    ::=    '(' #continue ')' => set predefined_method_call = "next"; ;
predefined_method_call<"not"> : value    ::=    '(' #continue ')' => set predefined_method_call = "not"; ;
predefined_method_call<"octalToDecimal"> : value    ::=    '(' #continue ')' => set predefined_method_call = "octalToDecimal"; ;
predefined_method_call<"parseFreeQuiet"> : value    ::=    '(' #continue variable_expression ',' expression ')' => set predefined_method_call = "parseFreeQuiet"; ;
predefined_method_call<"pathFromPackage"> : value    ::=    '(' #continue ')' => set predefined_method_call = "pathFromPackage"; ;
predefined_method_call<"postHTTPRequest"> : value    ::=    '(' #continue variable_expression ',' variable_expression ')' => set predefined_method_call = "postHTTPRequest"; ;
predefined_method_call<"pow"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "pow"; ;
predefined_method_call<"prec"> : value    ::=    '(' #continue ')' => set predefined_method_call = "prec"; ;
predefined_method_call<"receiveBinaryFromSocket"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "receiveBinaryFromSocket"; ;
predefined_method_call<"receiveFromSocket"> : value    ::=    '(' #continue variable_expression ')' => set predefined_method_call = "receiveFromSocket"; ;
predefined_method_call<"receiveTextFromSocket"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "receiveTextFromSocket"; ;
predefined_method_call<"relativePath"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "relativePath"; ;
predefined_method_call<"removeDirectory"> : value    ::=    '(' #continue ')' => set predefined_method_call = "removeDirectory"; ;
predefined_method_call<"removeGenerationTagsHandler"> : value    ::=    '(' #continue ')' => set predefined_method_call = "removeGenerationTagsHandler"; ;
predefined_method_call<"repeatString"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "repeatString"; ;
predefined_method_call<"replaceString"> : value    ::=    '(' #continue expression ',' expression ')' => set predefined_method_call = "replaceString"; ;
predefined_method_call<"replaceTabulations"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "replaceTabulations"; ;
predefined_method_call<"resolveFilePath"> : value    ::=    '(' #continue ')' => set predefined_method_call = "resolveFilePath"; ;
predefined_method_call<"rightString"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "rightString"; ;
predefined_method_call<"rsubString"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "rsubString"; ;
predefined_method_call<"scanDirectories"> : value    ::=    '(' #continue expression ',' expression ')' => set predefined_method_call = "scanDirectories"; ;
predefined_method_call<"scanFiles"> : value    ::=    '(' #continue expression ',' expression ',' expression ')' => set predefined_method_call = "scanFiles"; ;
predefined_method_call<"sendBinaryToSocket"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "sendBinaryToSocket"; ;
predefined_method_call<"sendHTTPRequest"> : value    ::=    '(' #continue variable_expression ')' => set predefined_method_call = "sendHTTPRequest"; ;
predefined_method_call<"sendTextToSocket"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "sendTextToSocket"; ;
predefined_method_call<"selectGenerationTagsHandler"> : value    ::=    '(' #continue ')' => set predefined_method_call = "selectGenerationTagsHandler"; ;
predefined_method_call<"shortToBytes"> : value    ::=    '(' #continue ')' => set predefined_method_call = "shortToBytes"; ;
predefined_method_call<"sqrt"> : value    ::=    '(' #continue ')' => set predefined_method_call = "sqrt"; ;
predefined_method_call<"startString"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "startString"; ;
predefined_method_call<"sub"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "sub"; ;
predefined_method_call<"subString"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "subString"; ;
predefined_method_call<"sup"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "sup"; ;
predefined_method_call<"system"> : value    ::=    '(' #continue ')' => set predefined_method_call = "system"; ;
predefined_method_call<"toLowerString"> : value    ::=    '(' #continue ')' => set predefined_method_call = "toLowerString"; ;
predefined_method_call<"toUpperString"> : value    ::=    '(' #continue ')' => set predefined_method_call = "toUpperString"; ;
predefined_method_call<"translateString"> : value    ::=    '(' #continue variable_expression ',' expression ')' => set predefined_method_call = "translateString"; ;
predefined_method_call<"trimLeft"> : value    ::=    '(' #continue ')' => set predefined_method_call = "trimLeft"; ;
predefined_method_call<"trimRight"> : value    ::=    '(' #continue ')' => set predefined_method_call = "trimRight"; ;
predefined_method_call<"trim"> : value    ::=    '(' #continue ')' => set predefined_method_call = "trim"; ;
predefined_method_call<"truncateAfterString"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "truncateAfterString"; ;
predefined_method_call<"truncateBeforeString"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "truncateBeforeString"; ;
predefined_method_call<"getLastReadChars"> : value    ::=    '(' #continue ')' => set predefined_method_call = "getLastReadChars"; ;
predefined_method_call<"lookAhead"> : value    ::=    '(' #continue ')' => set predefined_method_call = "lookAhead"; ;
predefined_method_call<"readAdaString"> : value    ::=    '(' #continue ')' => set predefined_method_call = "readAdaString"; ;
predefined_method_call<"readBytes"> : value    ::=    '(' #continue ')' => set predefined_method_call = "readBytes"; ;
predefined_method_call<"readChars"> : value    ::=    '(' #continue ')' => set predefined_method_call = "readChars"; ;
predefined_method_call<"readIfEqualTo"> : value    ::=    '(' #continue ')' => set predefined_method_call = "readIfEqualTo"; ;
predefined_method_call<"readIfEqualToIgnoreCase"> : value    ::=    '(' #continue ')' => set predefined_method_call = "readIfEqualToIgnoreCase"; ;
predefined_method_call<"readIfEqualToIdentifier"> : value    ::=    '(' #continue ')' => set predefined_method_call = "readIfEqualToIdentifier"; ;
predefined_method_call<"readLine"> : value    ::=    '(' #continue ')' => set predefined_method_call = "readLine"; ;
predefined_method_call<"readNextText"> : value    ::=    '(' #continue ')' => set predefined_method_call = "readNextText"; ;
predefined_method_call<"readNumber"> : value    ::=    '(' #continue ')' => set predefined_method_call = "readNumber"; ;
predefined_method_call<"readPythonString"> : value    ::=    '(' #continue ')' => set predefined_method_call = "readPythonString"; ;
predefined_method_call<"readString"> : value    ::=    '(' #continue ')' => set predefined_method_call = "readString"; ;
predefined_method_call<"readUptoJustOneChar"> : value    ::=    '(' #continue ')' => set predefined_method_call = "readUptoJustOneChar"; ;
predefined_method_call<"decrementIndentLevel"> : value    ::=    '(' #continue ')' => set predefined_method_call = "decrementIndentLevel"; ;
predefined_method_call<"equalLastWrittenChars"> : value    ::=    '(' #continue ')' => set predefined_method_call = "equalLastWrittenChars"; ;
predefined_method_call<"existFloatingLocation"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "existFloatingLocation"; ;
predefined_method_call<"getFloatingLocation"> : value    ::=    '(' #continue ')' => set predefined_method_call = "getFloatingLocation"; ;
predefined_method_call<"getLastWrittenChars"> : value    ::=    '(' #continue ')' => set predefined_method_call = "getLastWrittenChars"; ;
predefined_method_call<"getProtectedArea"> : value    ::=    '(' #continue ')' => set predefined_method_call = "getProtectedArea"; ;
predefined_method_call<"getProtectedAreaKeys"> : value    ::=    '(' #continue ')' => set predefined_method_call = "getProtectedAreaKeys"; ;
predefined_method_call<"indentText"> : value    ::=    '(' #continue ')' => set predefined_method_call = "indentText"; ;
predefined_method_call<"newFloatingLocation"> : value    ::=    '(' #continue ')' => set predefined_method_call = "newFloatingLocation"; ;
predefined_method_call<"remainingProtectedAreas"> : value    ::=    '(' #continue ')' => set predefined_method_call = "remainingProtectedAreas"; ;
predefined_method_call<"removeFloatingLocation"> : value    ::=    '(' #continue ')' => set predefined_method_call = "removeFloatingLocation"; ;
predefined_method_call<"removeProtectedArea"> : value    ::=    '(' #continue ')' => set predefined_method_call = "removeProtectedArea"; ;
predefined_method_call<"appendFile"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "appendFile"; ;
predefined_method_call<"autoexpand"> : value    ::=    '(' #continue variable_expression ')' => set predefined_method_call = "autoexpand"; ;
predefined_method_call<"clearVariable"> : value    ::=    '(' #continue ')' => set predefined_method_call = "clearVariable"; ;
predefined_method_call<"compileToCpp"> : value    ::=    '(' #continue expression ',' expression ')' => set predefined_method_call = "compileToCpp"; ;
predefined_method_call<"copyFile"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "copyFile"; ;
predefined_method_call<"copyGenerableFile"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "copyGenerableFile"; ;
predefined_method_call<"copySmartDirectory"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "copySmartDirectory"; ;
predefined_method_call<"cutString"> : value    ::=    '(' #continue expression ',' variable_expression ')' => set predefined_method_call = "cutString"; ;
predefined_method_call<"environTable"> : value    ::=    '(' #continue ')' => set predefined_method_call = "environTable"; ;
predefined_method_call<"error"> : value    ::=    '(' #continue ')' => set predefined_method_call = "error"; ;
predefined_method_call<"executeString"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "executeString"; ;
predefined_method_call<"expand"> : value    ::=    '(' #continue variable_expression ',' expression ')' => set predefined_method_call = "expand"; ;
predefined_method_call<"extendExecutedScript"> : value    ::=    '(' #continue ')' => set predefined_method_call = "extendExecutedScript"; ;
predefined_method_call<"generate"> : value    ::=    '(' #continue variable_expression ',' expression ')' => set predefined_method_call = "generate"; ;
predefined_method_call<"generateString"> : value    ::=    '(' #continue variable_expression ',' variable_expression ')' => set predefined_method_call = "generateString"; ;
predefined_method_call<"insertElementAt"> : value    ::=    '(' #continue expression ',' expression ')' => set predefined_method_call = "insertElementAt"; ;
predefined_method_call<"invertArray"> : value    ::=    '(' #continue ')' => set predefined_method_call = "invertArray"; ;
predefined_method_call<"listAllGeneratedFiles"> : value    ::=    '(' #continue ')' => set predefined_method_call = "listAllGeneratedFiles"; ;
predefined_method_call<"loadProject"> : value    ::=    '(' #continue variable_expression ')' => set predefined_method_call = "loadProject"; ;
predefined_method_call<"openLogFile"> : value    ::=    '(' #continue ')' => set predefined_method_call = "openLogFile"; ;
predefined_method_call<"parseAsBNF"> : value    ::=    '(' #continue variable_expression ',' expression ')' => set predefined_method_call = "parseAsBNF"; ;
predefined_method_call<"parseStringAsBNF"> : value    ::=    '(' #continue variable_expression ',' expression ')' => set predefined_method_call = "parseStringAsBNF"; ;
predefined_method_call<"parseFree"> : value    ::=    '(' #continue variable_expression ',' expression ')' => set predefined_method_call = "parseFree"; ;
predefined_method_call<"produceHTML"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "produceHTML"; ;
predefined_method_call<"putEnv"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "putEnv"; ;
predefined_method_call<"randomSeed"> : value    ::=    '(' #continue ')' => set predefined_method_call = "randomSeed"; ;
predefined_method_call<"removeAllElements"> : value    ::=    '(' #continue ')' => set predefined_method_call = "removeAllElements"; ;
predefined_method_call<"removeElement"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "removeElement"; ;
predefined_method_call<"removeFirstElement"> : value    ::=    '(' #continue ')' => set predefined_method_call = "removeFirstElement"; ;
predefined_method_call<"removeLastElement"> : value    ::=    '(' #continue ')' => set predefined_method_call = "removeLastElement"; ;
predefined_method_call<"removeRecursive"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "removeRecursive"; ;
predefined_method_call<"removeVariable"> : value    ::=    '(' #continue ')' => set predefined_method_call = "removeVariable"; ;
predefined_method_call<"saveBinaryToFile"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "saveBinaryToFile"; ;
predefined_method_call<"saveProject"> : value    ::=    '(' #continue variable_expression ')' => set predefined_method_call = "saveProject"; ;
predefined_method_call<"saveProjectTypes"> : value    ::=    '(' #continue ')' => set predefined_method_call = "saveProjectTypes"; ;
predefined_method_call<"saveToFile"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "saveToFile"; ;
predefined_method_call<"setCommentBegin"> : value    ::=    '(' #continue ')' => set predefined_method_call = "setCommentBegin"; ;
predefined_method_call<"setCommentEnd"> : value    ::=    '(' #continue ')' => set predefined_method_call = "setCommentEnd"; ;
predefined_method_call<"setGenerationHeader"> : value    ::=    '(' #continue ')' => set predefined_method_call = "setGenerationHeader"; ;
predefined_method_call<"setIncludePath"> : value    ::=    '(' #continue ')' => set predefined_method_call = "setIncludePath"; ;
predefined_method_call<"setNow"> : value    ::=    '(' #continue ')' => set predefined_method_call = "setNow"; ;
predefined_method_call<"setProperty"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "setProperty"; ;
predefined_method_call<"setTextMode"> : value    ::=    '(' #continue ')' => set predefined_method_call = "setTextMode"; ;
predefined_method_call<"setVersion"> : value    ::=    '(' #continue ')' => set predefined_method_call = "setVersion"; ;
predefined_method_call<"setWriteMode"> : value    ::=    '(' #continue ')' => set predefined_method_call = "setWriteMode"; ;
predefined_method_call<"setWorkingPath"> : value    ::=    '(' #continue ')' => set predefined_method_call = "setWorkingPath"; ;
predefined_method_call<"sleep"> : value    ::=    '(' #continue ')' => set predefined_method_call = "sleep"; ;
predefined_method_call<"slideNodeContent"> : value    ::=    '(' #continue variable_expression ')' => set predefined_method_call = "slideNodeContent"; ;
predefined_method_call<"sortArray"> : value    ::=    '(' #continue ')' => set predefined_method_call = "sortArray"; ;
predefined_method_call<"traceLine"> : value    ::=    '(' #continue ')' => set predefined_method_call = "traceLine"; ;
predefined_method_call<"traceObject"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "traceObject"; ;
predefined_method_call<"traceText"> : value    ::=    '(' #continue ')' => set predefined_method_call = "traceText"; ;
predefined_method_call<"translate"> : value    ::=    '(' #continue variable_expression ',' expression ',' expression ')' => set predefined_method_call = "translate"; ;
predefined_method_call<"attachInputToSocket"> : value    ::=    '(' #continue ')' => set predefined_method_call = "attachInputToSocket"; ;
predefined_method_call<"detachInputFromSocket"> : value    ::=    '(' #continue ')' => set predefined_method_call = "detachInputFromSocket"; ;
predefined_method_call<"setInputLocation"> : value    ::=    '(' #continue ')' => set predefined_method_call = "setInputLocation"; ;
predefined_method_call<"allFloatingLocations"> : value    ::=    '(' #continue ')' => set predefined_method_call = "allFloatingLocations"; ;
predefined_method_call<"attachOutputToSocket"> : value    ::=    '(' #continue ')' => set predefined_method_call = "attachOutputToSocket"; ;
predefined_method_call<"detachOutputFromSocket"> : value    ::=    '(' #continue ')' => set predefined_method_call = "detachOutputFromSocket"; ;
predefined_method_call<"incrementIndentLevel"> : value    ::=    '(' #continue ')' => set predefined_method_call = "incrementIndentLevel"; ;
predefined_method_call<"insertText"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "insertText"; ;
predefined_method_call<"insertTextOnce"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "insertTextOnce"; ;
predefined_method_call<"insertTextToFloatingLocation"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "insertTextToFloatingLocation"; ;
predefined_method_call<"insertTextOnceToFloatingLocation"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "insertTextOnceToFloatingLocation"; ;
predefined_method_call<"overwritePortion"> : value    ::=    '(' #continue expression ',' expression ')' => set predefined_method_call = "overwritePortion"; ;
predefined_method_call<"populateProtectedArea"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "populateProtectedArea"; ;
predefined_method_call<"resizeOutputStream"> : value    ::=    '(' #continue ')' => set predefined_method_call = "resizeOutputStream"; ;
predefined_method_call<"setFloatingLocation"> : value    ::=    '(' #continue expression ')' => set predefined_method_call = "setFloatingLocation"; ;
predefined_method_call<"setOutputLocation"> : value    ::=    '(' #continue ')' => set predefined_method_call = "setOutputLocation"; ;
predefined_method_call<"setProtectedArea"> : value    ::=    '(' #continue ')' => set predefined_method_call = "setProtectedArea"; ;
predefined_method_call<"writeBytes"> : value    ::=    '(' #continue ')' => set predefined_method_call = "writeBytes"; ;
predefined_method_call<"writeText"> : value    ::=    '(' #continue ')' => set predefined_method_call = "writeText"; ;
predefined_method_call<"writeTextOnce"> : value    ::=    '(' #continue ')' => set predefined_method_call = "writeTextOnce"; ;
predefined_method_call<"closeSocket"> : value    ::=    '(' #continue ')' => set predefined_method_call = "closeSocket"; ;
predefined_procedure_call<T>    ::= #check(false);
predefined_procedure_call<"appendFile">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"autoexpand">    ::=    '(' #continue expression ',' variable_expression ')';
predefined_procedure_call<"clearVariable">    ::=    '(' #continue variable_expression ')';
predefined_procedure_call<"compileToCpp">    ::=    '(' #continue expression ',' expression ',' expression ')';
predefined_procedure_call<"copyFile">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"copyGenerableFile">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"copySmartDirectory">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"cutString">    ::=    '(' #continue expression ',' expression ',' variable_expression ')';
predefined_procedure_call<"environTable">    ::=    '(' #continue variable_expression ')';
predefined_procedure_call<"error">    ::=    '(' #continue expression ')';
predefined_procedure_call<"executeString">    ::=    '(' #continue variable_expression ',' expression ')';
predefined_procedure_call<"expand">    ::=    '(' #continue script_file_expression<"pattern"> ',' variable_expression ',' expression ')';
predefined_procedure_call<"extendExecutedScript">    ::=    '(' #continue expression ')';
predefined_procedure_call<"generate">    ::=    '(' #continue script_file_expression<"pattern"> ',' variable_expression ',' expression ')';
predefined_procedure_call<"generateString">    ::=    '(' #continue script_file_expression<"pattern"> ',' variable_expression ',' variable_expression ')';
predefined_procedure_call<"insertElementAt">    ::=    '(' #continue variable_expression ',' expression ',' expression ')';
predefined_procedure_call<"invertArray">    ::=    '(' #continue variable_expression ')';
predefined_procedure_call<"listAllGeneratedFiles">    ::=    '(' #continue variable_expression ')';
predefined_procedure_call<"loadProject">    ::=    '(' #continue expression [',' variable_expression]? ')';
predefined_procedure_call<"openLogFile">    ::=    '(' #continue expression ')';
predefined_procedure_call<"parseAsBNF">    ::=    '(' #continue script_file_expression<"BNF"> ',' variable_expression ',' expression ')';
predefined_procedure_call<"parseStringAsBNF">    ::=    '(' #continue script_file_expression<"BNF"> ',' variable_expression ',' expression ')';
predefined_procedure_call<"parseFree">    ::=    '(' #continue script_file_expression<"free"> ',' variable_expression ',' expression ')';
predefined_procedure_call<"produceHTML">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"putEnv">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"randomSeed">    ::=    '(' #continue expression ')';
predefined_procedure_call<"removeAllElements">    ::=    '(' #continue variable_expression ')';
predefined_procedure_call<"removeElement">    ::=    '(' #continue variable_expression ',' expression ')';
predefined_procedure_call<"removeFirstElement">    ::=    '(' #continue variable_expression ')';
predefined_procedure_call<"removeLastElement">    ::=    '(' #continue variable_expression ')';
predefined_procedure_call<"removeRecursive">    ::=    '(' #continue variable_expression ',' expression ')';
predefined_procedure_call<"removeVariable">    ::=    '(' #continue variable_expression ')';
predefined_procedure_call<"saveBinaryToFile">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"saveProject">    ::=    '(' #continue expression [',' variable_expression]? ')';
predefined_procedure_call<"saveProjectTypes">    ::=    '(' #continue expression ')';
predefined_procedure_call<"saveToFile">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"setCommentBegin">    ::=    '(' #continue expression ')';
predefined_procedure_call<"setCommentEnd">    ::=    '(' #continue expression ')';
predefined_procedure_call<"setGenerationHeader">    ::=    '(' #continue expression ')';
predefined_procedure_call<"setIncludePath">    ::=    '(' #continue expression ')';
predefined_procedure_call<"setNow">    ::=    '(' #continue expression ')';
predefined_procedure_call<"setProperty">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"setTextMode">    ::=    '(' #continue expression ')';
predefined_procedure_call<"setVersion">    ::=    '(' #continue expression ')';
predefined_procedure_call<"setWriteMode">    ::=    '(' #continue expression ')';
predefined_procedure_call<"setWorkingPath">    ::=    '(' #continue expression ')';
predefined_procedure_call<"sleep">    ::=    '(' #continue expression ')';
predefined_procedure_call<"slideNodeContent">    ::=    '(' #continue variable_expression ',' variable_expression ')';
predefined_procedure_call<"sortArray">    ::=    '(' #continue variable_expression ')';
predefined_procedure_call<"traceEngine">    ::=    '(' #continue ')';
predefined_procedure_call<"traceLine">    ::=    '(' #continue expression ')';
predefined_procedure_call<"traceObject">    ::=    '(' #continue variable_expression [',' expression]? ')';
predefined_procedure_call<"traceStack">    ::=    '(' #continue ')';
predefined_procedure_call<"traceText">    ::=    '(' #continue expression ')';
predefined_procedure_call<"translate">    ::=    '(' #continue script_file_expression<"translate"> ',' variable_expression ',' expression ',' expression ')';
predefined_procedure_call<"attachInputToSocket">    ::=    '(' #continue expression ')';
predefined_procedure_call<"detachInputFromSocket">    ::=    '(' #continue expression ')';
predefined_procedure_call<"goBack">    ::=    '(' #continue ')';
predefined_procedure_call<"setInputLocation">    ::=    '(' #continue expression ')';
predefined_procedure_call<"allFloatingLocations">    ::=    '(' #continue variable_expression ')';
predefined_procedure_call<"attachOutputToSocket">    ::=    '(' #continue expression ')';
predefined_procedure_call<"detachOutputFromSocket">    ::=    '(' #continue expression ')';
predefined_procedure_call<"incrementIndentLevel">    ::=    '(' #continue [ expression]? ')';
predefined_procedure_call<"insertText">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"insertTextOnce">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"insertTextToFloatingLocation">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"insertTextOnceToFloatingLocation">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"overwritePortion">    ::=    '(' #continue expression ',' expression ',' expression ')';
predefined_procedure_call<"populateProtectedArea">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"resizeOutputStream">    ::=    '(' #continue expression ')';
predefined_procedure_call<"setFloatingLocation">    ::=    '(' #continue expression ',' expression ')';
predefined_procedure_call<"setOutputLocation">    ::=    '(' #continue expression ')';
predefined_procedure_call<"setProtectedArea">    ::=    '(' #continue expression ')';
predefined_procedure_call<"writeBytes">    ::=    '(' #continue expression ')';
predefined_procedure_call<"writeText">    ::=    '(' #continue expression ')';
predefined_procedure_call<"writeTextOnce">    ::=    '(' #continue expression ')';
predefined_procedure_call<"closeSocket">    ::=    '(' #continue expression ')';