# Parentheses are allowed to group expressions; for example:
# TAG & (TAG | TAG)
# !(TAG | TAG)
-# Allowed operators: conjunction - & &&
+# Allowed operators: conjunction - & && AND and
# disjunction - | ||
# negation - !
# This is a simple version of the grammar and it allows
expression : NAME
| 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
- | '(' SP0 expression SP0 ')'
+ | expression_parens
+
+l_expression : expression_parens
+ | expression_sp
+
+r_expression : expression_parens
+ | sp_expression
+
+expression_parens : '(' SP0 expression SP0 ')'
+
+sp_expression : SP1 expression
+
+expression_sp : expression SP1
+
+and_word : 'A' 'N' 'D'
+ | 'a' 'n' 'd'
SP0 : SP1 | empty