BNF for Dumont.jj
NON-TERMINALS
SwitchRestriction
::=
BooleanExpression
<EOF>
UpdateMapping
::=
(
VarAssignment
)* <EOF>
VarAssignment
::=
Id
"="
TermExpression
";"
BooleanExpression
::=
LogicalOrExpression
( "&&"
LogicalOrExpression
)*
LogicalOrExpression
::=
LogicalNotExpression
( "||"
LogicalNotExpression
)*
LogicalNotExpression
::=
"!"
LogicalNotExpression
|
TermExpression
TermEqualityExpression
|
"("
BooleanExpression
")"
TermEqualityExpression
::=
"=="
TermExpression
|
"!="
TermExpression
|
"<="
TermExpression
|
"<"
TermExpression
|
">="
TermExpression
|
">"
TermExpression
TermExpression
::=
TermAddExpression
TermAddExpression
::=
TermSubtractExpression
( "+"
TermSubtractExpression
)*
TermSubtractExpression
::=
TermMultExpression
( "-"
TermMultExpression
)*
TermMultExpression
::=
TermDivExpression
( "*"
TermDivExpression
)*
TermDivExpression
::=
TermModExpression
( "/"
TermModExpression
)*
TermModExpression
::=
TermUnaryExpression
( "%"
TermUnaryExpression
)*
TermUnaryExpression
::=
"++"
TermUnaryExpression
|
"--"
TermUnaryExpression
|
"("
TermExpression
")"
|
PrimaryTermExpression
PrimaryTermExpression
::=
Literal
|
Id
Name
::=
<IDENTIFIER> ( "." <IDENTIFIER> )*
Id
::=
Name
Literal
::=
( <INTEGER_LITERAL> )
|
( <BOOLEAN_LITERAL> )
|
( <FLOATING_POINT_LITERAL> )
|
( <STRING_LITERAL> )
|
( <ENUMERATION_LITERAL> )