BNF for Parser.jj

NON-TERMINALS

Expression ::= ( StringLiteral ";" | LogicalORExpression ";" )
LogicalORExpression ::= ( LogicalANDExpression ( <OR> LogicalANDExpression )* )
LogicalANDExpression ::= ( RelationalExpression ( <AND> RelationalExpression )* )
RelationalExpression ::= AdditiveExpression ( <RELATIONAL_OPERATOR> AdditiveExpression )?
AdditiveExpression ::= ( MultiplicativeExpression ( ( <ADD> MultiplicativeExpression ) | MinusTerm )* )
MinusTerm ::= <SUB> MultiplicativeExpression
MultiplicativeExpression ::= ( PowerTerm ( ( <MULT> PowerTerm ) | DivTerm )* )
DivTerm ::= <DIV> PowerTerm
PowerTerm ::= ( UnaryExpression ( <POWER> UnaryExpression )* )
UnaryExpression ::= <ADD> UnaryExpression
| ( <SUB> UnaryExpression )
| ( <NOT> UnaryExpression )
| PrimaryExpression
PrimaryExpression ::= Function
| Name
| Float
| "(" LogicalORExpression ")"
Function ::= ( <IDENTIFIER> Arguments )
Arguments ::= "(" ( ArgumentList )? ")"
ArgumentList ::= ( StringLiteral | LogicalORExpression ) ( "," ( StringLiteral | LogicalORExpression ) )*
Float ::= <FLOATING_POINT_LITERAL>
Name ::= <IDENTIFIER>
StringLiteral ::= <QUOTE> <IDENTIFIER> <QUOTE>