# TAG - search blog posts that contain the tag;
# !TAG - search blog posts that don't contain the tag;
# TAG && TAG, TAG & TAG - search blog posts that contain both tags;
-# TAG | TAG - search blog posts that contain any of the tags;
+# TAG || TAG, TAG | TAG - search blog posts that contain any of the tags;
# Parentheses are allowed to group expressions:
# TAG & (TAG | TAG)
# !(TAG | TAG)
expression : NAME
| expression AND_OP AND_OP expression
| expression AND_OP expression
+ | expression OR_OP OR_OP expression
| expression OR_OP expression
| NOT_OP expression
| '(' expression ')'