| Start |
::= |
( Expression
<EOF> | <EOF> ) |
| Expression |
::= |
OrExpression |
| OrExpression |
::= |
AndExpression
( ( <OR> AndExpression ) )* |
| AndExpression |
::= |
EqualExpression
( ( <AND> EqualExpression ) )* |
| EqualExpression |
::= |
RelationalExpression
( ( <NE> RelationalExpression ) | (
<EQ> RelationalExpression ) )* |
| RelationalExpression |
::= |
PostfixExpression
( ( <LT> PostfixExpression ) | ( <GT>
PostfixExpression ) | ( <LE> PostfixExpression ) | ( <GE> PostfixExpression
) )* |
| PostfixExpression |
::= |
AdditiveExpression
( ( <IS_NOT_NULL> ) | ( <IS_NULL> ) | ( <IN> Array ) | ( <BETWEEN> AdditiveExpression
<AND> AdditiveExpression ) | ( <LIKE>
AdditiveExpression ) | ( <NOT_LIKE> AdditiveExpression ) )? |
| AdditiveExpression |
::= |
MultiplicativeExpression
( ( <CONCAT> MultiplicativeExpression ) |
( <PLUS> MultiplicativeExpression ) | (
<MINUS> MultiplicativeExpression ) )* |
| MultiplicativeExpression |
::= |
UnaryExpression
( ( <MUL> UnaryExpression ) | (
<DIV> UnaryExpression ) | ( <DIV2> UnaryExpression ) | ( <MOD> UnaryExpression
) )* |
| UnaryExpression |
::= |
( <PLUS> UnaryExpression ) |
|
| |
( <MINUS> UnaryExpression ) |
|
| |
( <NOT> UnaryExpression ) |
|
| |
UnaryExpressionNotPlusMinus |
| UnaryExpressionNotPlusMinus |
::= |
AnyConstant |
|
| |
( Function
| Variable ) |
|
| |
"(" Expression
")" |
| Variable |
::= |
( Identifier
) |
| Function |
::= |
( Identifier
"(" ArgumentList ")" ) |
| ArgumentList |
::= |
( Expression
( "," Expression )* )? |
| Identifier |
::= |
<IDENTIFIER> |
| Array |
::= |
"(" AdditiveExpression
( "," AdditiveExpression )* ")" |
| AnyConstant |
::= |
( <NULL_LITERAL> |
<TRUE_LITERAL> | <FALSE_LITERAL> | <STRING_LITERAL> |
<INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> ) |