| Document | ::= | DocumentWithParent |
| DocumentWithParent | ::= | ( StatementOrExpression )* |
| XMLHeader | ::= | <XMLSTAGOPEN> <AXMLTAG> ( XMLAttribute )* ( <XMLEMPTYTAGCLOSE> | <XMLTAGCLOSE> ) |
| XMLNextElement | ::= | ( AnyXMLContent | <XMLETAGOPEN> <AXMLTAG> <XMLTAGCLOSE> ) |
| AnyXMLContent | ::= | XMLText |
| | | XMLEntity | |
| | | AnyXMLElement | |
| AnyXMLElement | ::= | <XMLSTAGOPEN> <AXMLTAG> ( XMLAttribute )* ( <XMLEMPTYTAGCLOSE> | ElementAnyContent <AXMLTAG> <XMLTAGCLOSE> ) |
| ElementAnyContent | ::= | <XMLTAGCLOSE> ( ( SQLQuoteString | XMLText | StatementOrExpression ) )* <XMLETAGOPEN> |
| SQLQuoteString | ::= | VariableInString |
| XMLText | ::= | ( ( <XMLTEXT> | <XMLSPECIALCHAR> | <XMLSQLQUOTE> | TextOrphan ) )+ |
| TextOrphan | ::= | <DOTATEXP> |
| | | <DOTEXP> | |
| | | <INDEXINT> | |
| | | <INDEXVAR> | |
| | | <VARIABLE> | |
| XMLEntity | ::= | <XMLENTITY> |
| XMLAttribute | ::= | <XMLATTR> <EQUAL> <XMLDQSTART> ( StringInDynamicString | StringInDynamicString | DynamicStringContents ) <XMLDQEND> |
| StatementOrExpression | ::= | ( Statement | Expression ) ( <SEMICOLON> )? |
| Statement | ::= | SubDef |
| | | Return | |
| | | Insert | |
| | | Update | |
| | | Delete | |
| | | ||
| | | ForEach | |
| | | While | |
| | | If | |
| | | Exit | |
| | | SendEmail | |
| | | Assignment | |
| Expression | ::= | SimpleExpression ( BinaryOpList )? |
| SimpleExpression | ::= | NoPostExpression ( PostExpression )* |
| NoPostExpression | ::= | MatchRegex |
| | | ReplaceRegex | |
| | | String | |
| | | NumberLiteral | |
| | | NotOp | |
| | | Meta | |
| | | Count | |
| | | Exists | |
| | | Length | |
| | | Left | |
| | | Right | |
| | | Substring | |
| | | Xml | |
| | | Constant | |
| | | Label | |
| | | Sysdate | |
| | | ListInit | |
| | | HashInit | |
| | | NewObject | |
| | | BracketExpression | |
| | | SubCall | |
| | | AnyXMLElement | |
| | | XMLEntity | |
| | | Variable | |
| PostExpression | ::= | MethodCall |
| | | Assignment | |
| | | PostSelectExpression | |
| PostSelectExpression | ::= | ( DotExpression | ArrayIndex ) |
| BinaryOpList | ::= | ( ( Range | Concat | SetOp | ComparisonOp | MathOp | BooleanOp ) SimpleExpression )+ |
| BracketExpression | ::= | <OPENBRACKET> Expression <CLOSEBRACKET> |
| Bracket2Expressions | ::= | <OPENBRACKET> Expression <COMMA> Expression <CLOSEBRACKET> |
| Bracket3Expressions | ::= | <OPENBRACKET> Expression <COMMA> Expression <COMMA> Expression <CLOSEBRACKET> |
| BracketNExpressions | ::= | <OPENBRACKET> Expression ( <COMMA> Expression )* <CLOSEBRACKET> |
| MatchRegex | ::= | <MATCHREGEX> Variable Regex RegexModif |
| ReplaceRegex | ::= | <REPLACEREGEX> Variable Regex Regex RegexModif |
| Regex | ::= | <BACKSLASH_MODIF> <REGEXSTR> |
| RegexModif | ::= | <BACKSLASH_MODIF> |
| ListInit | ::= | ( ListInitInt | <OPENSQUAREBRACKET> ( Expression ( <COMMA> Expression )* )? <CLOSESQUAREBRACKET> ) |
| ListInitInt | ::= | <INDEXINT_OR_ARRAYINIT> |
| HashInit | ::= | <OPENCURLYBRACKET> ( HashKeyVal ( <COMMA> HashKeyVal )* )? <CLOSECURLYBRACKET> |
| HashKeyVal | ::= | Expression ( <HASHKEYVAL> Expression )? |
| NewObject | ::= | <NEW> ObjectOrSubName <OPENBRACKET> ( Expression )* <CLOSEBRACKET> |
| ObjectOrSubName | ::= | <COLUMNLIT> ( <DOTEXP> )* |
| SubDef | ::= | <SUB> ObjectOrSubName ( <OPENBRACKET> Variable ( <COMMA> Variable )* <CLOSEBRACKET> )? AnyXMLElement |
| SubCall | ::= | <COLUMNLIT> ( BracketNExpressions )? |
| Insert | ::= | <INSERT> <INTO> Expression <VALUES> ( BracketNExpressions | Expression ) |
| Update | ::= | <UPDATE> Expression <VALUES> Expression <CURRENT> |
| Delete | ::= | <DELETE> Expression <CURRENT> |
| Return | ::= | <RETURN> ( Expression )? |
| BooleanOp | ::= | AndOp |
| | | OrOp | |
| | | InOp | |
| InOp | ::= | <IN> |
| AndOp | ::= | <AND> |
| OrOp | ::= | <OR> |
| ComparisonOp | ::= | Equals |
| | | NotEquals | |
| | | LtOp | |
| | | LteOp | |
| | | GtOp | |
| | | GteOp | |
| MathOp | ::= | PlusOp |
| | | MinusOp | |
| | | MultOp | |
| | | FloatDivOp | |
| MinusOp | ::= | <MINUSSIGN> |
| MultOp | ::= | <MULTSIGN> |
| FloatDivOp | ::= | <DIVSIGN> |
| Range | ::= | <DOTDOT> |
| SetOp | ::= | Union |
| | | Inter | |
| | | SetMinus | |
| | | DiffOp | |
| DiffOp | ::= | <DIFF> ( ( <NEW> | <DEL> | <UPD> ) )* |
| Union | ::= | <UNION> ( <ALL> )? |
| Inter | ::= | ( <INTER> | <INTERSECT> ) |
| SetMinus | ::= | <MINUS> |
| Equals | ::= | <EQUALS> |
| LtOp | ::= | <LT> |
| LteOp | ::= | <LTE> |
| GtOp | ::= | <GT> |
| GteOp | ::= | <GTE> |
| NotEquals | ::= | <NOTEQUALS> |
| PlusOp | ::= | <PLUSSIGN> |
| Concat | ::= | ( <STRCONCAT> | <STRCONCAT_DEP> ) |
| NotOp | ::= | <NOT> Expression |
| ArrayIndex | ::= | ( ArrayIndexInt | ArrayIndexVar | <OPENSQUAREBRACKET> Expression <CLOSESQUAREBRACKET> ) |
| ArrayIndexInt | ::= | ( <INDEXINT> | <INDEXINT_OR_ARRAYINIT> ) |
| ArrayIndexVar | ::= | <INDEXVAR> |
| MethodCall | ::= | DotColumn <OPENBRACKET> ( Expression ( <COMMA> Expression )* )? <CLOSEBRACKET> |
| DotExpression | ::= | ( DotAt | DotColumn | <DOT> ( Variable | BracketExpression ) ) |
| DotAt | ::= | <DOTATEXP> |
| DotColumn | ::= | <DOTEXP> |
| If | ::= | <IF> Expression StatementOrExpression ( <ELSE> StatementOrExpression )? |
| Constant | ::= | ( <TRUE> | <FALSE> | <NULL> ) |
| NumberLiteral | ::= | ( <PLUSSIGN> | <MINUSSIGN> )? ( IntLiteral | FloatLiteral ) |
| IntLiteral | ::= | <INTLIT> |
| FloatLiteral | ::= | <FLOATLIT> |
| ForEach | ::= | <FOREACH> Variable <IN> Expression StatementOrExpression |
| While | ::= | <WHILE> Expression StatementOrExpression |
| Assignment | ::= | <EQUAL> Expression |
| Variable | ::= | <VARIABLE> |
| ::= | ( <PRINT> | <PRINTLN> ) ( <ALLRESULTS> )? ( <NOHEADER> )? ( <CSV> | <TABLE> )? ( Expression )? ( ( <APPEND> )? <TO> ( <FILE> )? Expression )? | |
| Exit | ::= | <EXIT> ( BracketExpression )? |
| SendEmail | ::= | <SENDEMAIL> SimpleExpression |
| Meta | ::= | <META> ( <ALLRESULTS> )? Expression |
| Count | ::= | <COUNT> SimpleExpression |
| Label | ::= | <LABEL> SimpleExpression |
| Xml | ::= | <XML> ( BracketNExpressions | SimpleExpression ) |
| Exists | ::= | <EXISTS> SimpleExpression |
| Length | ::= | ( <LEN> | <LENGTH> ) SimpleExpression |
| Sysdate | ::= | ( <SYSDATE> ) ( BracketExpression )? |
| Left | ::= | ( <LEFT> ) Bracket2Expressions |
| Right | ::= | ( <RIGHT> ) Bracket2Expressions |
| Substring | ::= | ( <SUBSTRING> ) Bracket3Expressions |
| String | ::= | StaticString |
| | | DynamicString | |
| StaticString | ::= | <SCRIPTSTRING> |
| StringInDynamicString | ::= | ( ( <XMLDQSTRING> | <XMLDQSPECIAL> | <SCRIPTDQSTRING> | <SCRIPTDQSPECIAL> | <ESCDQSTRING> | TextOrphan ) )+ |
| DynamicString | ::= | <DQUOTESTART> DynamicStringContents <DQUOTEEND> |
| DynamicStringContents | ::= | ( VariableInString | StringInDynamicString )* |
| VariableInString | ::= | Variable ( PostSelectExpression )* |