+def p_expression_not(p):
+ """expression : NOT_OP SP0 expression"""
+ p[0] = ('NOT', p[3])
+
+def p_expression_not_word(p):
+ """expression : op_word r_expression"""
+ if p[1] in ('NOT', 'not'):
+ p[0] = ('NOT', p[2])
+ else:
+ raise ValueError(p)
+