/* Test Input File */ void foo(int16 bar) { int8 i=0; do { print "i=",i,'\n'; i++; while(i> && || == < > <= >= === !== ASSIGNMENT_OPERATOR: = += -= *= /= %= &= |= ^= <<= >>= &&= ||= EXPRESSION: NUMERIC_LITERAL STRING_LITERAL CONST_NAME VAR_NAME PROC_NAME EXPRESSION '[' EXPRESSIONS ']' EXPRESSION '.' NAME EXPRESSION '(' EXPRESSIONs ')' '(' EXPRESSION ')' PREFIX_OPERATOR EXPRESSION EXPRESSION POSTFIX_OPERATOR EXPRESSION DIADIC_OPERATOR EXPRESSION EXPRESSION '?' EXPRESSION ':' EXPRESSION VOID_EXPRESSION: EXPRESSION ASSIGNMENT_OPERATOR EXPRESSION VARREF [++|--] PROC_NAME '(' EXPRESSIONs ')' PROC_NAME EXPRESSIONs TYPE: TYPENAME // predefined or typedef symbol TYPE '[' EXPRESSIONs ']' // array TYPE '(' TYPEs ')' // function predefined types: void int8 uint8 int16 uint16 int32 uint32 int uint char bool byte ubyte short ushort int uint long ulong sfloat float lfloat string / str / cstr DEFINITION: TYPEDEF "type" NAME ... CONSTDEF "const" TYPE NAME ... VARDEF TYPE NAME ... PROCDEF TYPE NAME '(' ... ')' '{' ... '}' INSTRUCTION: DECLARATION DEFINITION VOID_EXPRESSION ';' '{' INSTRUCTIONs '}' FLOWCONTROL TYPEDEF: "type" NAME ';' declaration "type" NAME '=' TYPE ';' custom type name, alias "type" NAME '=' '{' INSTRUCTIONs '}' class "type" NAME '=' TYPENAME '+' '{' INSTRUCTIONs '}' child class "type" NAME '=' TYPE NAMEDEFs ';' enums NAMEDEF: NAME [ '=' EXPRESSION ] (helper) ARGDEF: (helper) TYPE NAMEDEFs CONSTDEF: "const" ARGDEFs ';' VARDEF: ARGDEFs ';' PROCDEF: TYPE NAME '(' ARGDEFs ')' INSTRUCTION TYPE "operator" OPERATOR '(' ARGDEFs ')' INSTRUCTION CONDITION: '(' EXPRESSION ')' (helper) FLOWCONTROL: "if" CONDITION INSTRUCTION "elif" CONDITION INSTRUCTION "else" INSTRUCTION "for" '(' [ ARGDEFs | EXPRESSION ] ';' EXPRESSION ';' VOID_EXPRESSION ')' "do" INSTRUCTION "do" INSTRUCTION "try" INSTRUCTION "catch" '(' TYPE NAME ')' INSTRUCTION "switch" CONDITION '{' INSTRUCTIONs '}' "case" EXPRESSION ':' "default" ':' "while" EXPRESSION ';' conditionally exit loop "until" EXPRESSION ';' conditionally exit loop "next" ';' start next iteration of loop "break" ';' exit from switch "return" [ EXPRESSION ] ';' return from proc "throw" EXPRESSION ';' exit from proc PROGRAM: INSTRUCTIONs Reserved words: type const if elif else for do while until next try (catch) throw switch case default break return