Grammar definition
This page defines the formal grammar that is used by relational.
Literals
Ident literals are recognized by the regular expression:
( letter | '_')( letter | digit | '_')*
String literals String have the form 'x'
, where x is any sequence of any characters except "
and '
.
Reserved words and symbols, separated by a space
For the query
* - ∪ ∩ ÷ ⋈ ⧑ ⧒ ⧓ π σ ρ ➡ ( ) , - *
For the expression in the select, the python operators:
+ - * / > < >= <= == != and or not in **
Grammar
Query := Ident
Query := Query BinaryOp Query
Query := (Query)
Query := σ PYExprWithoutParenthesis (Query) | σ (PYExpr) (Query)
Query := π FieldList (Query)
Query := ρ RenameList (Query)
FieldList := Ident | Ident , FieldList
RenameList := Ident ➡ Ident | Ident ➡ Ident , RenameList
BinaryOp := * | - | ∪ | ∩ | ÷ | ⋈ | ⧑ | ⧒ | ⧓
Note the double definition of the select. It means that if the selection expression contains parenthesis, then the entire expression must be enclosed in an extra set of parenthesis.