BNF for ExpressionParser.jj

NON-TERMINALS

skip_to_matching_brace ::= java code
Start ::= ( Expression )? <EOF>
Expression ::= ConditionalExpression
ConditionalExpression ::= LogicalOrExpression ( <QUESTION> LogicalOrExpression <COLON> ConditionalExpression )?
LogicalOrExpression ::= LogicalAndExpression ( <OR> LogicalAndExpression )*
LogicalAndExpression ::= LogicalNotExpression ( <AND> LogicalNotExpression )*
LogicalNotExpression ::= <NOT> LogicalNotExpression
| EqualityExpression
EqualityExpression ::= RelationalExpression ( <EQ> RelationalExpression | <NE> RelationalExpression | <MATCH> RelationalExpression )*
RelationalExpression ::= AdditiveExpression ( <LT> AdditiveExpression | <GT> AdditiveExpression | <LTE> AdditiveExpression | <GTE> AdditiveExpression )*
AdditiveExpression ::= MultiplicativeExpression ( <PLUS> MultiplicativeExpression | <MINUS> MultiplicativeExpression )*
MultiplicativeExpression ::= PrimaryExpression ( <MUL> PrimaryExpression | <DIV> PrimaryExpression | <MOD> PrimaryExpression )*
PrimaryExpression ::= <LBRACE> ValueReference <RBRACE>
| Literal
| <LBRAKET> Expression <RBRAKET>
ValueReference ::= skip_to_matching_brace
Literal ::= ( <INTEGER_LITERAL> )
| ( <STRING_LITERAL> )
| BooleanLiteral
BooleanLiteral ::= <TRUE>
| <FALSE>