# TAG & (TAG | TAG)
# !(TAG | TAG)
# Allowed operators: conjunction - & && AND and
-# disjunction - | ||
-# negation - !
+# disjunction - | || OR or
+# negation - ! NOT not
# This is a simple version of the grammar and it allows
# rather stupid expressions, like !!TAG or ((TAG)); in the future
# it will be fixed by making the grammar more complex and stricter.
| expression SP0 AND_OP AND_OP SP0 expression
| expression SP0 AND_OP SP0 expression
| l_expression and_word r_expression
- | NOT_OP SP0 expression
| expression SP0 OR_OP OR_OP SP0 expression
| expression SP0 OR_OP SP0 expression
+ | l_expression or_word r_expression
+ | NOT_OP SP0 expression
+ | not_word r_expression
| expression_parens
l_expression : expression_parens
and_word : 'A' 'N' 'D'
| 'a' 'n' 'd'
+or_word : 'O' 'R'
+ | 'o' 'r'
+
+not_word : 'N' 'O' 'T'
+ | 'n' 'o' 't'
+
SP0 : SP1 | empty
empty :