def p_argument_2(p): '''arguments : LPAREN declaration_variables RPAREN''' p[0] = p[2] p[0].arg=len(p[2].children) ## Intengo colocar en la tabla de simbolos inf de los #print "\n\nFun: %s\n\n" % p[2].children[0].typ for i in p[2].children: #print ": i-",i.typ symtab.addarg(i.typ) ## # Para ponerle los artributos a las funciones el numero de argumentos symtab.baf(funcstack[-1],p[2].arg)
def p_fun_scope(p): '''fun : FUN ID''' p[0] = Node('',[],[p[2]]) p[0].name = p[2] p[0].typ = "int" # Miro si el nombre de la funcion ya esta en current re=symtab.redeclaration(p[2]) if re: print "#Error# redeclaracion de funcion '%s' en linea %i" % (re.name,re.lineno) else: #Sino esta redefinido lo agrega a la tabla symtab.baf(p[2],"int") funcstack.append(p[2]) #Creo un nuevo scope symtab.new_scope()