Grammar

The grammar used to generate the standard parser is as listed below. The information displayed is generated by the jjdoc tool from the grammar was generated from the JccParser.jj file. Low precendence operators are at the top, high precedence operators at the bottom.

Start ::= ( Expression ( <EOF> | <SEMI> ) | ( <EOF> | <SEMI> ) )
Expression ::= AssignExpression
| RightExpression
AssignExpression ::= ( LValue <ASSIGN> Expression )
RightExpression ::= OrExpression
OrExpression ::= AndExpression ( ( <OR> AndExpression ) )*
AndExpression ::= EqualExpression ( ( <AND> EqualExpression ) )*
EqualExpression ::= RelationalExpression ( ( <NE> RelationalExpression ) | ( <EQ> RelationalExpression ) )*
RelationalExpression ::= AdditiveExpression ( ( <LT> AdditiveExpression ) | ( <GT> AdditiveExpression ) | ( <LE> AdditiveExpression ) | ( <GE> AdditiveExpression ) )*
AdditiveExpression ::= MultiplicativeExpression ( ( <PLUS> MultiplicativeExpression ) | ( <MINUS> MultiplicativeExpression ) )*
MultiplicativeExpression ::= UnaryExpression ( ( PowerExpression ) | ( <MUL> UnaryExpression ) | ( <DOT> UnaryExpression ) | ( <CROSS> UnaryExpression ) | ( <DIV> UnaryExpression ) | ( <MOD> UnaryExpression ) )*
UnaryExpression ::= ( <PLUS> UnaryExpression )
| ( <MINUS> UnaryExpression )
| ( <NOT> UnaryExpression )
| PowerExpression
PowerExpression ::= UnaryExpressionNotPlusMinus ( ( <POWER> UnaryExpression ) )?
UnaryExpressionNotPlusMinus ::= AnyConstant
| ArrayAccess
| Function
| Variable
| <LRND> Expression <RRND>
| ListExpression
ListExpression ::= <LSQ> ( Expression ( <COMMA> Expression )* )? <RSQ>
LValue ::= ArrayAccess
| Variable
ArrayAccess ::= Variable ListExpression
Variable ::= ( Identifier )
Function ::= ( Identifier <LRND> ArgumentList <RRND> )
ArgumentList ::= ( Expression ( <COMMA> Expression )* )?
Identifier ::= ( <INDENTIFIER1> | <INDENTIFIER2> )
AnyConstant ::= ( <STRING_LITERAL> | RealConstant )
RealConstant ::= ( <INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> )