def p_ident_e(sellf, p): 'simple_e : IDENT' p[0] = expression.reference(p[1], p.lexpos(1))
def p_call_e_noargs(self, p): 'prefix_e : IDENT LPAREN RPAREN' p[0] = expression.call(expression.reference(p[1], p.lexpos(1)), [], p.lexpos(1))
def p_assign_e(self, p): 'assign_e : IDENT ASSIGN expr' p[0] = expression.assignment(expression.reference(p[1], p.lexpos(1)), p[3], p.lexpos(2))
def p_call_e(self, p): 'prefix_e : IDENT LPAREN expr_list RPAREN' p[0] = expression.call(expression.reference(p[1], p.lexpos(1)), p[3], p.lexpos(1))
def p_dec(self, p): 'assign_e : IDENT DEC' q = expression.reference(p[1], p.lexpos(1)) p[0] = expression.assignment(q, expression.binary_operator('-', q, expression.const(1, type.int_t, p.lexpos(2)), p.lexpos(2)), p.lexpos(2))