| Title: BNF for ExpressionParser |
| |
| <H2><A name="BNFforExpressionParser-BNFforExpressionParser.jj"></A>BNF for ExpressionParser.jj</H2> |
| |
| <DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent"> |
| <PRE>NON-TERMINALS |
| expression ::= orCondition <EOF> |
| orCondition ::= andCondition ( "or" andCondition )* |
| andCondition ::= notCondition ( "and" notCondition )* |
| notCondition ::= ( "not" | "!" ) simpleCondition |
| | simpleCondition |
| simpleCondition ::= scalarExpression ( simpleNotCondition | ( "=" | "==" ) scalarExpression | ( "!=" | "<>" ) scalarExpression | "<=" scalarExpression | "<" scalarExpression | ">" scalarExpression | ">=" scalarExpression | "like" scalarExpression | "likeIgnoreCase" scalarExpression | "in" ( namedParameter | "(" scalarCommaList ")" ) | "between" scalarExpression "and" scalarExpression )? |
| simpleNotCondition ::= ( "not" | "!" ) ( "like" scalarExpression | "likeIgnoreCase" scalarExpression | "in" ( namedParameter | "(" scalarCommaList ")" ) | "between" scalarExpression "and" scalarExpression ) |
| scalarCommaList ::= ( scalarConstExpression ( "," scalarConstExpression )* ) |
| scalarExpression ::= scalarNumericExpression |
| | <SINGLE_QUOTED_STRING> |
| | <DOUBLE_QUOTED_STRING> |
| | <NULL> |
| scalarConstExpression ::= <SINGLE_QUOTED_STRING> |
| | <DOUBLE_QUOTED_STRING> |
| | namedParameter |
| | <INT_LITERAL> |
| | <FLOAT_LITERAL> |
| scalarNumericExpression ::= multiplySubtractExp ( "+" multiplySubtractExp | "-" multiplySubtractExp )* |
| multiplySubtractExp ::= numericTerm ( "*" numericTerm | "/" numericTerm )* |
| numericTerm ::= ( "+" )? numericPrimary |
| | "-" numericPrimary |
| numericPrimary ::= "(" orCondition ")" |
| | pathExpression |
| | namedParameter |
| | <INT_LITERAL> |
| | <FLOAT_LITERAL> |
| namedParameter ::= "$" <PROPERTY_PATH> |
| pathExpression ::= ( <PROPERTY_PATH> | "obj:" <PROPERTY_PATH> | "db:" <PROPERTY_PATH> ) |
| </PRE> |
| </DIV></DIV> |