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>