]> git.phdru.name Git - phdru.name/cgi-bin/blog-ru/search-tags.git/blobdiff - parser/grammar
Allow ' AND ' and ' and '
[phdru.name/cgi-bin/blog-ru/search-tags.git] / parser / grammar
index 7c34096e3bdb10aaee6557185dcca6c60fb6d893..33326116c917ec5300f0df9b6ebbf95e44dfa65a 100644 (file)
@@ -8,7 +8,7 @@
 # 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
@@ -28,10 +28,26 @@ SP1 : '[ \t]+'
 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