def p_expr_post1(p): 'expr : expr PP' p[0] = ast.UnaryExp(ast.UnaryExp.POST_INC, p[1], p.lineno(1))
def p_expr_post2(p): 'expr : expr MM' p[0] = ast.UnaryExp(ast.UnaryExp.POST_DEC, p[1], p.lineno(1))
def p_expr_pre8(p): '''expr : '&' expr %prec ADDRESSOF''' p[0] = ast.UnaryExp(ast.UnaryExp.ADDRESSOF, p[2], p.lineno(1))
def p_expr_pre9(p): '''expr : SIZEOF expr''' p[0] = ast.UnaryExp(ast.UnaryExp.SIZEOF, p[2], p.lineno(1))
def p_expr_pre6(p): '''expr : '~' expr''' p[0] = ast.UnaryExp(ast.UnaryExp.BNOT, p[2], p.lineno(1))
def p_expr_pre7(p): '''expr : '*' expr %prec DEREF''' p[0] = ast.UnaryExp(ast.UnaryExp.DEREF, p[2], p.lineno(1))
def p_expr_pre5(p): '''expr : LNOT expr''' p[0] = ast.UnaryExp(ast.UnaryExp.LNOT, p[2], p.lineno(1))
def p_expr_pre4(p): '''expr : '-' expr %prec UMINUS''' p[0] = ast.UnaryExp(ast.UnaryExp.MINUS, p[2], p.lineno(1))
def p_expr_pre3(p): '''expr : '+' expr %prec UPLUS''' p[0] = ast.UnaryExp(ast.UnaryExp.PLUS, p[2], p.lineno(1))
def p_expr_pre2(p): 'expr : MM expr' p[0] = ast.UnaryExp(ast.UnaryExp.PRE_DEC, p[2], p.lineno(1))
def p_expr_pre1(p): 'expr : PP expr' p[0] = ast.UnaryExp(ast.UnaryExp.PRE_INC, p[2], p.lineno(1))