This section provides a visual reference guide to the grammar for the expression language used in X DevAPI.
Press CTRL+C to copyschemaQualifiedIdent ::= ( ident_schema '.' )? ident
Figure 12.3 columnIdent
Press CTRL+C to copycolumnIdent ::= ( ident '.' ( ident '.' )? )? ident ( ( '->' | '->>' ) "'" '$' documentPath "'" )?
![Image shows the syntax in EBNF form as described in the preceding text.](images/columnident.png)
Press CTRL+C to copydocumentPathLastItem ::= '[*]' | '[' INT ']' | '.*' | '.' documentPathMember
Press CTRL+C to copydocumentPathItem ::= documentPathLastItem | '**'
Press CTRL+C to copydocumentPath ::= documentPathItem* documentPathLastItem
Figure 12.7 documentField
Press CTRL+C to copydocumentField ::= fieldId documentPath* | '$' documentPath
![Image shows the syntax in EBNF form as described in the preceding text.](images/documentfield.png)
Press CTRL+C to copycastType ::= 'SIGNED' 'INTEGER'* | 'UNSIGNED' 'INTEGER'* | 'CHAR' lengthSpec* | 'BINARY' lengthSpec* | 'DECIMAL' ( lengthSpec | '(' INT ',' INT ')' )? | 'TIME' | 'DATE' | 'DATETIME' | 'JSON'
Press CTRL+C to copyfunctionCall ::= schemaQualifiedIdent '(' argsList? ')'
Press CTRL+C to copyliteral ::= INT | FLOAT | STRING_SQ | STRING_DQ | 'NULL' | 'FALSE' | 'TRUE'
Press CTRL+C to copyjsonDoc ::= '{' ( jsonKeyValue ( ',' jsonKeyValue )* )* '}'
Press CTRL+C to copyatomicExpr ::= placeholder | columnOrPath | functionCall | groupedExpr | unaryOp | castOp
Press CTRL+C to copyINTERVAL_UNIT ::= 'MICROSECOND' | 'SECOND' | 'MINUTE' | 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'QUARTER' | 'YEAR' | 'SECOND_MICROSECOND' | 'MINUTE_MICROSECOND' | 'MINUTE_SECOND' | 'HOUR_MICROSECOND' | 'HOUR_SECOND' | 'HOUR_MINUTE' | 'DAY_MICROSECOND' | 'DAY_SECOND' | 'DAY_MINUTE' | 'DAY_HOUR' | 'YEAR_MONTH'
Press CTRL+C to copyintervalExpr ::= atomicExpr ( ( '+' | '-' ) interval )*
Press CTRL+C to copymulDivExpr ::= intervalExpr ( ( '*' | '/' | '%' ) intervalExpr )*
Press CTRL+C to copyaddSubExpr ::= mulDivExpr ( ( '+' | '-' ) mulDivExpr )*
Press CTRL+C to copyshiftExpr ::= addSubExpr ( ( '<<' | '>>' ) addSubExpr )*
Press CTRL+C to copybitExpr ::= shiftExpr ( ( '&' | '|' | '^' ) shiftExpr )*
Press CTRL+C to copycompExpr ::= bitExpr ( ( '>=' | '>' | '<=' | '<' | '=' | '<>' | '!=' ) bitExpr )*
Press CTRL+C to copyilriExpr ::= compExpr 'IS' 'NOT'* ( 'NULL' | 'TRUE' | 'FALSE' ) | compExpr 'NOT'* 'IN' '(' argsList* ')' | compExpr 'NOT'* 'IN' compExpr | compExpr 'NOT'* 'LIKE' compExpr ( 'ESCAPE' compExpr )* | compExpr 'NOT'* 'BETWEEN' compExpr 'AND' compExpr | compExpr 'NOT'* 'REGEXP' compExpr | compExpr
Press CTRL+C to copyandExpr ::= ilriExpr ( ( '&&' | 'AND' ) ilriExpr )*
Press CTRL+C to copyFLOAT ::= DIGIT* '.' DIGIT+ ( 'E' ( '+' | '-' )* DIGIT+ )* | DIGIT+ 'E' ( '+' | '-' )* DIGIT+
Press CTRL+C to copyQUOTED_ID ::= '`' ID '`' | '`' ( '~' '`'* | '``' )* '`'
Press CTRL+C to copyID ::= ( 'a' - 'z' | 'A' - 'Z' | '_' ) ( 'a' - 'z' | 'A' - 'Z' | '0' - '9' | '_' )*
Press CTRL+C to copySCHAR ::= [\u0020\u0021\u0023\u0024\u0025\u0026\u0028-\u005B\u005D-\u007E]
Press CTRL+C to copySTRING_DQ ::= '"' ( SCHAR | "'" | ESCAPED_DQ )* '"'