-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrSQL.bnf
More file actions
24 lines (17 loc) · 811 Bytes
/
rSQL.bnf
File metadata and controls
24 lines (17 loc) · 811 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
program ::= queryStatement* EOF
queryStatement ::= selectStatement
selectStatement ::= "SELECT" ( identifiers | "*" ) fromClause whereClause?
identifiers ::= IDENTIFIER ( "," IDENTIFIER )*
fromClause ::= "FROM" expression ( "," expression )?
whereClause ::= "WHERE" expression
literal ::= 'nil' | 'false' | 'true' | NUMBER | STRING
expression ::= logicOr
logicOr = logicAnd ( "OR" logicAnd )*
logicAnd = equality ( "AND" equality )*
equality ::= comparison ( ( "!=" | "==" ) comparison )*
comparison ::= term ( ( ">" | ">=" | "<" | "<=" ) term )*
term ::= factor ( ( "-" | "+" ) factor )*
factor ::= unary ( ( "/" | "*" ) unary )*
unary ::= ( "!" | "-" ) unary | get
get ::= primary (( "." IDENTIFIER ) | "[" ( expression | STRING ) "]")*
primary ::= literal | "(" expression ")" | IDENTIFIER | $selected