Grammar

This grammar was generated from the Parser.jj file using the jjdoc utility from JavaCC. Operators are ordered from lowest to highest precedence (from top to bottom).

Start ::= ( Expression ( <EOF> | <SEMI> ) | ( <EOF> | <SEMI> ) )
Expression ::= AssignExpression
| OrExpression
AssignExpression ::= ( Variable <ASSIGN> Expression )
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
| ( Function | Variable )
| <LRND> Expression <RRND>
| ListExpression
ListExpression ::= ( <LSQ> Expression ( <COMMA> Expression )* <RSQ> )
Variable ::= ( Identifier )
Function ::= ( Identifier <LRND> ArgumentList <RRND> )
ArgumentList ::= ( Expression ( <COMMA> Expression )* )?
Identifier ::= ( <INDENTIFIER1> | <INDENTIFIER2> )
AnyConstant ::= ( <STRING_LITERAL> | RealConstant )
RealConstant ::= ( <INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> )