def p_input(p): 'input : SCAN ID' var = symtable.get_var(p[2]) if not var: var = symtable.add_var(p[2], str, None) codegen.gen_quad(dir.scan, -1, -1, var['dir'])
def p_assignment_array(p): '''assignment : ID EQ array''' array = p[3] var = symtable.add_var(p[1], int, len(array)) for i in range(len(array)): codegen.gen_quad(dir.asigna, array[i]['dir'], -1, var['dir']+i)
def p_assignment_array_2(p): '''assignment : ID EQ type LBRACK INT RBRACK''' var = symtable.add_var(p[1], p[3], p[5])
def p_assignment_expression(p): '''assignment : ID EQ expression''' exp_res = codegen.opdos.pop() var = symtable.add_var(p[1], exp_res['type'], None) codegen.gen_quad(dir.asigna, exp_res['dir'], -1, var['dir'])