-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathboolean_expression_grammar.in
More file actions
38 lines (28 loc) · 933 Bytes
/
boolean_expression_grammar.in
File metadata and controls
38 lines (28 loc) · 933 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
25
26
27
28
29
30
31
32
33
34
35
36
37
?start: boolean_sum -> return_final_result
?boolean_sum: boolean_product
| boolean_sum "or" boolean_product -> or_expression
?boolean_product: boolean_atom
| boolean_product "and" boolean_atom -> and_expression
?boolean_atom: "false"
| "true"
| "(" boolean_sum ")"
| sum_comparision
?sum_comparision: sum "<" sum -> less_expression
| sum ">" sum -> greater_expression
| sum "==" sum -> equal_expression
| sum "!=" sum -> not_equal_expression
| sum ">=" sum -> greater_equal_expression
| sum "<=" sum -> less_equal_expression
?sum: product
| sum "+" product -> add_expression
| sum "-" product -> sub_expression
?product: atom
| product "*" atom -> mult_expression
| product "/" atom -> div_expression
?atom: NUMBER -> number
| NAME -> identifier
| "(" sum ")"
%import common.CNAME -> NAME
%import common.NUMBER
%import common.WS_INLINE
%ignore WS_INLINE