def p_const_string(self, p): 'const : STRING' p[0] = expression.const(p[1], type.string_t, p.lexpos(1))
def p_const_boolean(self, p): 'const : BOOLEAN' p[0] = expression.const(p[1], type.boolean_t, p.lexpos(1))
def p_const_int(self, p): 'const : INT' p[0] = expression.const(p[1], type.int_t, p.lexpos(1))
def p_const_double(self, p): 'const : DOUBLE' p[0] = expression.const(p[1], type.double_t, 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))