-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgrammar.txt
29 lines (28 loc) · 1.24 KB
/
grammar.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
expression = logical_or
logical_or = logical_and (DOUBLE_BAR logical_and)*
logical_and = bitwise_or (DOUBLE_AMPERSAND bitwise_or)*
bitwise_or = bitwise_xor (BAR bitwise_xor)*
bitwise_xor = bitwise_and (CARET bitwise_and)*
bitwise_and = equality (AMPERSAND equality)*
equality = comparison (DOUBLE_EQUALS comparison)*
comparison = shift ((GREATER_THAN | GREATER_THAN EQUALS | LESS_THAN | LESS_THAN EQUALS) shift)+
shift = additive ((GREATER_THAN GREATER_THAN | LESS_THAN LESS_THAN) additive)*
additive = multiplicative ((PLUS | HYPHEN) multiplicative)*
multiplicative = power ((ASTERISK | SLASH | PERCENT_SIGN) power)*
power = unary (DOUBLE_ASTERISK unary)*
unary = EXCLAMATION_MARK unary
| TILDE unary
| "int" unary
| "float" unary
| statistics
statistics = (MAX | MEAN | MIN | SUM) OPEN_PARENTHESIS cell_value COMMA cell_value CLOSE_PARENTHESIS
| atom
atom = OPEN_PARENTHESIS expression CLOSE_PARENTHESIS
| (MINUS)? DIGIT (DIGIT)* PERIOD (DIGIT)*
| integer_value
| DOUBLE_QUOTE (UNICODE_CHARACTER | BACKSLASH DOUBLE_QUOTE | BACKSLASH BACKSLASH)* DOUBLE
| "false"
| "true"
| cell_value
cell_value = OPEN_BRACKET integer_value COMMA integer_value CLOSE_BRACKET
integer_value = (MINUS)? DIGIT (DIGIT)*