type SymbolConstants = (
   SYMBOL_EOF              =   0, (* (EOF) *)
   SYMBOL_ERROR            =   1, (* (Error) *)
   SYMBOL_WHITESPACE       =   2, (* (Whitespace) *)
   SYMBOL_MINUS            =   3, (* '-' *)
   SYMBOL_EXCLAMEQ         =   4, (* '!=' *)
   SYMBOL_LPARAN           =   5, (* '(' *)
   SYMBOL_RPARAN           =   6, (* ')' *)
   SYMBOL_TIMES            =   7, (* '*' *)
   SYMBOL_COMMA            =   8, (* ',' *)
   SYMBOL_DOT              =   9, (* '.' *)
   SYMBOL_DIV              =  10, (* '/' *)
   SYMBOL_COLON            =  11, (* ':' *)
   SYMBOL_LBRACKET         =  12, (* '[' *)
   SYMBOL_RBRACKET         =  13, (* ']' *)
   SYMBOL_PLUS             =  14, (* '+' *)
   SYMBOL_LT               =  15, (* '<' *)
   SYMBOL_LTEQ             =  16, (* '<=' *)
   SYMBOL_EQ               =  17, (* '=' *)
   SYMBOL_EQEQ             =  18, (* '==' *)
   SYMBOL_GT               =  19, (* '>' *)
   SYMBOL_GTEQ             =  20, (* '>=' *)
   SYMBOL_AND              =  21, (* and *)
   SYMBOL_BREAK            =  22, (* break *)
   SYMBOL_CALL             =  23, (* call *)
   SYMBOL_COMMENTX         =  24, (* Commentx *)
   SYMBOL_DOWNTO           =  25, (* downto *)
   SYMBOL_ELSE             =  26, (* else *)
   SYMBOL_ELSEIF           =  27, (* elseif *)
   SYMBOL_ENDFOR           =  28, (* endfor *)
   SYMBOL_ENDIF            =  29, (* endif *)
   SYMBOL_ENDLOOP          =  30, (* endloop *)
   SYMBOL_ENDWHILE         =  31, (* endwhile *)
   SYMBOL_EXITWHEN         =  32, (* exitwhen *)
   SYMBOL_FOR              =  33, (* for *)
   SYMBOL_FUNCTION         =  34, (* function *)
   SYMBOL_IDENTIFIER       =  35, (* Identifier *)
   SYMBOL_IF               =  36, (* if *)
   SYMBOL_IN               =  37, (* in *)
   SYMBOL_LOCAL            =  38, (* local *)
   SYMBOL_LOOP             =  39, (* loop *)
   SYMBOL_NOT              =  40, (* not *)
   SYMBOL_NUMBERLITERAL    =  41, (* NumberLiteral *)
   SYMBOL_OR               =  42, (* or *)
   SYMBOL_RETURN           =  43, (* return *)
   SYMBOL_SET              =  44, (* set *)
   SYMBOL_STRINGLITERAL    =  45, (* StringLiteral *)
   SYMBOL_THEN             =  46, (* then *)
   SYMBOL_TO               =  47, (* to *)
   SYMBOL_WHILE            =  48, (* while *)
   SYMBOL_ADDITION         =  49, (* <Addition> *)
   SYMBOL_AND2             =  50, (* <And> *)
   SYMBOL_ARGFUNCTION      =  51, (* <ArgFunction> *)
   SYMBOL_ARGMETHOD        =  52, (* <ArgMethod> *)
   SYMBOL_ARGUMENTS        =  53, (* <Arguments> *)
   SYMBOL_ASSIGNARRAY      =  54, (* <AssignArray> *)
   SYMBOL_ASSIGNARRAYSUF   =  55, (* <AssignArraySuf> *)
   SYMBOL_ASSIGNLOCAL      =  56, (* <AssignLocal> *)
   SYMBOL_ASSIGNMEMBER     =  57, (* <AssignMember> *)
   SYMBOL_ASSIGNVAR        =  58, (* <AssignVar> *)
   SYMBOL_BRACES           =  59, (* <Braces> *)
   SYMBOL_BREAK2           =  60, (* <Break> *)
   SYMBOL_CALL2            =  61, (* <Call> *)
   SYMBOL_CODEVALUE        =  62, (* <CodeValue> *)
   SYMBOL_DIVISION         =  63, (* <Division> *)
   SYMBOL_DOTABLE          =  64, (* <Dotable> *)
   SYMBOL_ENDFOR2          =  65, (* <EndFor> *)
   SYMBOL_ENDWHILE2        =  66, (* <EndWhile> *)
   SYMBOL_EQUALTO          =  67, (* <EqualTo> *)
   SYMBOL_EXITWHEN2        =  68, (* <Exitwhen> *)
   SYMBOL_EXPRESSION       =  69, (* <Expression> *)
   SYMBOL_EXPRESSION2      =  70, (* <Expression2> *)
   SYMBOL_EXPRESSION3      =  71, (* <Expression3> *)
   SYMBOL_EXPRESSION4      =  72, (* <Expression4> *)
   SYMBOL_EXPRESSION5      =  73, (* <Expression5> *)
   SYMBOL_EXPRESSION6      =  74, (* <Expression6> *)
   SYMBOL_EXPRESSION7      =  75, (* <Expression7> *)
   SYMBOL_EXPRESSION8      =  76, (* <Expression8> *)
   SYMBOL_FORDOWNTO        =  77, (* <ForDownto> *)
   SYMBOL_FORGROUP         =  78, (* <ForGroup> *)
   SYMBOL_FORLOOPS         =  79, (* <ForLoops> *)
   SYMBOL_FORTO            =  80, (* <ForTo> *)
   SYMBOL_FUNCTION2        =  81, (* <Function> *)
   SYMBOL_GETARRAY         =  82, (* <GetArray> *)
   SYMBOL_GETARRAYSUF      =  83, (* <GetArraySuf> *)
   SYMBOL_GETMEMBER        =  84, (* <GetMember> *)
   SYMBOL_GREATERTHAN      =  85, (* <GreaterThan> *)
   SYMBOL_GREATERTHANEQUAL =  86, (* <GreaterThanEqual> *)
   SYMBOL_IFELSEIF         =  87, (* <IfElseIf> *)
   SYMBOL_LESSTHAN         =  88, (* <LessThan> *)
   SYMBOL_LESSTHANEQUAL    =  89, (* <LessThanEqual> *)
   SYMBOL_LINE             =  90, (* <Line> *)
   SYMBOL_LOCAL2           =  91, (* <Local> *)
   SYMBOL_LOGICALBINARY    =  92, (* <LogicalBinary> *)
   SYMBOL_MEMBERCODEVALUE  =  93, (* <MemberCodeValue> *)
   SYMBOL_METHOD           =  94, (* <Method> *)
   SYMBOL_NEGATIVE         =  95, (* <Negative> *)
   SYMBOL_NOT2             =  96, (* <Not> *)
   SYMBOL_NOTEQUALTO       =  97, (* <NotEqualTo> *)
   SYMBOL_NOTHINGFUNCTION  =  98, (* <NothingFunction> *)
   SYMBOL_NOTHINGMETHOD    =  99, (* <NothingMethod> *)
   SYMBOL_OR2              = 100, (* <Or> *)
   SYMBOL_PRODUCT          = 101, (* <Product> *)
   SYMBOL_RETURN2          = 102, (* <Return> *)
   SYMBOL_SINGLEKEYWORD    = 103, (* <SingleKeyword> *)
   SYMBOL_STATEMENT        = 104, (* <Statement> *)
   SYMBOL_SUBTRACTION      = 105, (* <Subtraction> *)
   SYMBOL_WHILELOOP        = 106  (* <WhileLoop> *)
);

type RuleConstants = (
   RULE_LINE_COMMENTX                                      =   0, (* <Line> ::= <Statement> Commentx *)
   RULE_LINE                                               =   1, (* <Line> ::= <Statement> *)
   RULE_STATEMENT                                          =   2, (* <Statement> ::= <Expression> *)
   RULE_STATEMENT2                                         =   3, (* <Statement> ::= <AssignVar> *)
   RULE_STATEMENT3                                         =   4, (* <Statement> ::= <AssignMember> *)
   RULE_STATEMENT4                                         =   5, (* <Statement> ::= <AssignLocal> *)
   RULE_STATEMENT5                                         =   6, (* <Statement> ::= <Local> *)
   RULE_STATEMENT6                                         =   7, (* <Statement> ::= <AssignArray> *)
   RULE_STATEMENT7                                         =   8, (* <Statement> ::= <AssignArraySuf> *)
   RULE_STATEMENT8                                         =   9, (* <Statement> ::= <Call> *)
   RULE_STATEMENT9                                         =  10, (* <Statement> ::= <SingleKeyword> *)
   RULE_STATEMENT10                                        =  11, (* <Statement> ::= <IfElseIf> *)
   RULE_STATEMENT11                                        =  12, (* <Statement> ::= <ForLoops> *)
   RULE_STATEMENT12                                        =  13, (* <Statement> ::= <EndFor> *)
   RULE_STATEMENT13                                        =  14, (* <Statement> ::= <WhileLoop> *)
   RULE_STATEMENT14                                        =  15, (* <Statement> ::= <EndWhile> *)
   RULE_STATEMENT15                                        =  16, (* <Statement> ::= <Break> *)
   RULE_STATEMENT16                                        =  17, (* <Statement> ::= <Exitwhen> *)
   RULE_STATEMENT17                                        =  18, (* <Statement> ::= <Return> *)
   RULE_IFELSEIF_IF_THEN                                   =  19, (* <IfElseIf> ::= if <Expression> then *)
   RULE_IFELSEIF_ELSEIF_THEN                               =  20, (* <IfElseIf> ::= elseif <Expression> then *)
   RULE_SINGLEKEYWORD_LOOP                                 =  21, (* <SingleKeyword> ::= loop *)
   RULE_SINGLEKEYWORD_ENDLOOP                              =  22, (* <SingleKeyword> ::= endloop *)
   RULE_SINGLEKEYWORD_ENDIF                                =  23, (* <SingleKeyword> ::= endif *)
   RULE_SINGLEKEYWORD_ELSE                                 =  24, (* <SingleKeyword> ::= else *)
   RULE_CALL_CALL                                          =  25, (* <Call> ::= call <Function> *)
   RULE_CALL_CALL2                                         =  26, (* <Call> ::= call <Method> *)
   RULE_ASSIGNVAR_SET_IDENTIFIER_EQ                        =  27, (* <AssignVar> ::= set Identifier '=' <Expression> *)
   RULE_ASSIGNMEMBER_SET_DOT_IDENTIFIER_EQ                 =  28, (* <AssignMember> ::= set <Dotable> '.' Identifier '=' <Expression> *)
   RULE_ASSIGNARRAYSUF_SET_COLON_IDENTIFIER_EQ             =  29, (* <AssignArraySuf> ::= set <Expression8> ':' Identifier '=' <Expression> *)
   RULE_ASSIGNLOCAL_LOCAL_IDENTIFIER_EQ                    =  30, (* <AssignLocal> ::= local Identifier '=' <Expression> *)
   RULE_ASSIGNARRAY_SET_LBRACKET_RBRACKET_EQ               =  31, (* <AssignArray> ::= set <Expression8> '[' <Expression> ']' '=' <Expression> *)
   RULE_LOCAL_LOCAL_IDENTIFIER                             =  32, (* <Local> ::= local Identifier *)
   RULE_EXITWHEN_EXITWHEN                                  =  33, (* <Exitwhen> ::= exitwhen <Expression> *)
   RULE_RETURN_RETURN                                      =  34, (* <Return> ::= return <Expression> *)
   RULE_RETURN_RETURN2                                     =  35, (* <Return> ::= return *)
   RULE_BRACES_LPARAN_RPARAN                               =  36, (* <Braces> ::= '(' <Expression> ')' *)
   RULE_CODEVALUE_FUNCTION_IDENTIFIER                      =  37, (* <CodeValue> ::= function Identifier *)
   RULE_MEMBERCODEVALUE_FUNCTION_IDENTIFIER_DOT_IDENTIFIER =  38, (* <MemberCodeValue> ::= function Identifier '.' Identifier *)
   RULE_FUNCTION                                           =  39, (* <Function> ::= <NothingFunction> *)
   RULE_FUNCTION2                                          =  40, (* <Function> ::= <ArgFunction> *)
   RULE_NOTHINGFUNCTION_IDENTIFIER_LPARAN_RPARAN           =  41, (* <NothingFunction> ::= Identifier '(' ')' *)
   RULE_ARGFUNCTION_IDENTIFIER_LPARAN_RPARAN               =  42, (* <ArgFunction> ::= Identifier '(' <Arguments> ')' *)
   RULE_GETARRAY_LBRACKET_RBRACKET                         =  43, (* <GetArray> ::= <Expression8> '[' <Expression> ']' *)
   RULE_GETARRAYSUF_COLON_IDENTIFIER                       =  44, (* <GetArraySuf> ::= <Expression8> ':' Identifier *)
   RULE_ARGUMENTS                                          =  45, (* <Arguments> ::= <Expression> *)
   RULE_ARGUMENTS_COMMA                                    =  46, (* <Arguments> ::= <Expression> ',' <Arguments> *)
   RULE_DOTABLE                                            =  47, (* <Dotable> ::= <Expression8> *)
   RULE_DOTABLE2                                           =  48, (* <Dotable> ::=  *)
   RULE_GETMEMBER_DOT_IDENTIFIER                           =  49, (* <GetMember> ::= <Dotable> '.' Identifier *)
   RULE_NOTHINGMETHOD_DOT_IDENTIFIER_LPARAN_RPARAN         =  50, (* <NothingMethod> ::= <Dotable> '.' Identifier '(' ')' *)
   RULE_ARGMETHOD_DOT_IDENTIFIER_LPARAN_RPARAN             =  51, (* <ArgMethod> ::= <Dotable> '.' Identifier '(' <Arguments> ')' *)
   RULE_METHOD                                             =  52, (* <Method> ::= <NothingMethod> *)
   RULE_METHOD2                                            =  53, (* <Method> ::= <ArgMethod> *)
   RULE_EXPRESSION8                                        =  54, (* <Expression8> ::= <GetArray> *)
   RULE_EXPRESSION82                                       =  55, (* <Expression8> ::= <GetArraySuf> *)
   RULE_EXPRESSION83                                       =  56, (* <Expression8> ::= <GetMember> *)
   RULE_EXPRESSION84                                       =  57, (* <Expression8> ::= <Function> *)
   RULE_EXPRESSION85                                       =  58, (* <Expression8> ::= <Method> *)
   RULE_EXPRESSION8_IDENTIFIER                             =  59, (* <Expression8> ::= Identifier *)
   RULE_EXPRESSION8_NUMBERLITERAL                          =  60, (* <Expression8> ::= NumberLiteral *)
   RULE_EXPRESSION8_STRINGLITERAL                          =  61, (* <Expression8> ::= StringLiteral *)
   RULE_EXPRESSION86                                       =  62, (* <Expression8> ::= <CodeValue> *)
   RULE_EXPRESSION87                                       =  63, (* <Expression8> ::= <MemberCodeValue> *)
   RULE_EXPRESSION88                                       =  64, (* <Expression8> ::= <Braces> *)
   RULE_NOT_NOT                                            =  65, (* <Not> ::= not <Expression7> *)
   RULE_EXPRESSION7                                        =  66, (* <Expression7> ::= <Not> *)
   RULE_EXPRESSION72                                       =  67, (* <Expression7> ::= <Expression8> *)
   RULE_NEGATIVE_MINUS                                     =  68, (* <Negative> ::= '-' <Expression6> *)
   RULE_EXPRESSION6                                        =  69, (* <Expression6> ::= <Negative> *)
   RULE_EXPRESSION62                                       =  70, (* <Expression6> ::= <Expression7> *)
   RULE_PRODUCT_TIMES                                      =  71, (* <Product> ::= <Expression6> '*' <Expression5> *)
   RULE_DIVISION_DIV                                       =  72, (* <Division> ::= <Expression6> '/' <Expression5> *)
   RULE_EXPRESSION5                                        =  73, (* <Expression5> ::= <Product> *)
   RULE_EXPRESSION52                                       =  74, (* <Expression5> ::= <Division> *)
   RULE_EXPRESSION53                                       =  75, (* <Expression5> ::= <Expression6> *)
   RULE_ADDITION_PLUS                                      =  76, (* <Addition> ::= <Expression5> '+' <Expression4> *)
   RULE_SUBTRACTION_MINUS                                  =  77, (* <Subtraction> ::= <Expression5> '-' <Expression4> *)
   RULE_EXPRESSION4                                        =  78, (* <Expression4> ::= <Addition> *)
   RULE_EXPRESSION42                                       =  79, (* <Expression4> ::= <Subtraction> *)
   RULE_EXPRESSION43                                       =  80, (* <Expression4> ::= <Expression5> *)
   RULE_GREATERTHAN_GT                                     =  81, (* <GreaterThan> ::= <Expression4> '>' <Expression4> *)
   RULE_GREATERTHANEQUAL_GTEQ                              =  82, (* <GreaterThanEqual> ::= <Expression4> '>=' <Expression4> *)
   RULE_LESSTHAN_LT                                        =  83, (* <LessThan> ::= <Expression4> '<' <Expression4> *)
   RULE_LESSTHANEQUAL_LTEQ                                 =  84, (* <LessThanEqual> ::= <Expression4> '<=' <Expression4> *)
   RULE_EXPRESSION3                                        =  85, (* <Expression3> ::= <GreaterThan> *)
   RULE_EXPRESSION32                                       =  86, (* <Expression3> ::= <GreaterThanEqual> *)
   RULE_EXPRESSION33                                       =  87, (* <Expression3> ::= <LessThan> *)
   RULE_EXPRESSION34                                       =  88, (* <Expression3> ::= <LessThanEqual> *)
   RULE_EXPRESSION35                                       =  89, (* <Expression3> ::= <Expression4> *)
   RULE_EQUALTO_EQEQ                                       =  90, (* <EqualTo> ::= <Expression3> '==' <Expression3> *)
   RULE_NOTEQUALTO_EXCLAMEQ                                =  91, (* <NotEqualTo> ::= <Expression3> '!=' <Expression3> *)
   RULE_EXPRESSION2                                        =  92, (* <Expression2> ::= <EqualTo> *)
   RULE_EXPRESSION22                                       =  93, (* <Expression2> ::= <NotEqualTo> *)
   RULE_EXPRESSION23                                       =  94, (* <Expression2> ::= <Expression3> *)
   RULE_AND_AND                                            =  95, (* <And> ::= <Expression2> and <Expression> *)
   RULE_OR_OR                                              =  96, (* <Or> ::= <Expression2> or <Expression> *)
   RULE_LOGICALBINARY                                      =  97, (* <LogicalBinary> ::= <And> *)
   RULE_LOGICALBINARY2                                     =  98, (* <LogicalBinary> ::= <Or> *)
   RULE_EXPRESSION                                         =  99, (* <Expression> ::= <LogicalBinary> *)
   RULE_EXPRESSION9                                        = 100, (* <Expression> ::= <Expression2> *)
   RULE_FORLOOPS                                           = 101, (* <ForLoops> ::= <ForTo> *)
   RULE_FORLOOPS2                                          = 102, (* <ForLoops> ::= <ForDownto> *)
   RULE_FORLOOPS3                                          = 103, (* <ForLoops> ::= <ForGroup> *)
   RULE_FORTO_FOR_EQ_TO                                    = 104, (* <ForTo> ::= for <Expression> '=' <Expression> to <Expression> *)
   RULE_FORDOWNTO_FOR_EQ_DOWNTO                            = 105, (* <ForDownto> ::= for <Expression> '=' <Expression> downto <Expression> *)
   RULE_FORGROUP_FOR_IN                                    = 106, (* <ForGroup> ::= for <Expression> in <Expression> *)
   RULE_ENDFOR_ENDFOR                                      = 107, (* <EndFor> ::= endfor *)
   RULE_WHILELOOP_WHILE                                    = 108, (* <WhileLoop> ::= while <Expression> *)
   RULE_ENDWHILE_ENDWHILE                                  = 109, (* <EndWhile> ::= endwhile *)
   RULE_BREAK_BREAK                                        = 110  (* <Break> ::= break *)
);
