示例#1
0
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)
示例#2
0
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()