GLOBAL_SCOPE DEFINITIONS CONST_DEF SOURCEPOS NAME TYPE VALUE VARIABLE_DEF SOURCEPOS NAME TYPE INITIAL_VALUE FUNCTION_DEF SOURCEPOS NAME RETURN_TYPE ARGUMENTS TYPE NAME SCOPE DEFINITIONS s.o. INSTRUCTIONS s.o. INSTRUCTIONS ASSIGNMENT void value; s.u. PROCEDURE_CALL void value; s.u. FLOW_CONTROL misc.; tbd. VALUE RTYPE FUNCTION / OPERATOR ARGUMENTS / EXPRESSIONS ASSIGNMENT: FUNCTION = ASSIGNMENT_OPERATOR RTYPE = void ARGUMENTS = VREF + EXPRESSION PROCEDURE_CALL: NAME RTYPE = void ARGUMENTS / EXPRESSIONS TYPE: void int8 uint8 int16 uint16 int32 uint32 int uint char bool string / str NAME: (LETTER | '_') (LETTER | DECIMALDIGIT | '_') ... VALUE: LITERAL '(' VALUE ')' PREFIX_OPERATOR VALUE VALUE POSTFIX_OPERATOR VALUE OPERATOR VALUE VALUE '?' VALUE ':' VALUE ASSIGNMENT_OPERATOR: = += -= ... PREFIX_OPERATOR: + - ~ ! ++ -- POSTFIX_OPERATOR: ++ -- OPERATOR: + - * / % & | ^ && || == < > <= >= << >> COMMAND: DEFINITION CONST_DEF VARIABLE_DEF FUNCTION_DEF INSTRUCTION ASSIGNMENT PROCEDURE_CALL PROGRAM_FLOW CONST_DEF: const TYPE NAME = VALUE; VARIABLE_DEF: TYPE NAME; TYPE NAME = VALUE; FUNCTION_DEF: TYPE NAME '(' ARGUMENTS ')' '{' COMMANDS '}' ASSIGNMENT: VARIABLE_REF ASSIGNMENT_OPERATOR VALUE; VARIABLE_REF POSTFIX_OPERATOR; PROCEDURE_CALL: NAME VALUES; FUNCTION_CALL: NAME '(' VALUES ')' ARGUMENT: TYPE TYPE NAME