-t_SP1 = '[ \t]+'
-
-def t_error(t):
- """Avoid warnings on stderr"""
-
-lexer = lex.lex()
-
-def p_expression_name(p):
- """expression : NAME"""
- p[0] = ('NAME', p[1])
-
-def p_expression_and_and(p):
- """expression : expression SP0 AND_OP AND_OP SP0 expression"""
- p[0] = ('AND', p[1], p[6])
-
-def p_expression_and(p):
- """expression : expression SP0 AND_OP SP0 expression"""
- p[0] = ('AND', p[1], p[5])
-
-def p_expression_op_word(p):
- """expression : l_expression op_word r_expression"""
- if p[2] in ('AND', 'and'):
- p[0] = ('AND', p[1], p[3])
- elif p[2] in ('OR', 'or'):
- p[0] = ('OR', p[1], p[3])
-
-def p_expression_or_or(p):
- """expression : expression SP0 OR_OP OR_OP SP0 expression"""
- p[0] = ('OR', p[1], p[6])
-
-def p_expression_or(p):
- """expression : expression SP0 OR_OP SP0 expression"""
- p[0] = ('OR', p[1], p[5])
-
-def p_expression_not(p):
- """expression : NOT_OP SP0 expression"""
- p[0] = ('NOT', p[3])