def p_dec_list_init(p): # Descripción: Regla para el inicio de la lista de declaraciones. # Parámetros: - p: token ''' DEC_LIST_INIT : TkCreate DEC_LIST ''' global simTabActual # Comienza un nuevo scope, se crea una nueva tabla de simbolos simTabActual = SimTab(simTabActual) simTabActual.agregarDecInit(p[2],True) p[0] = ArbolDecListInit(p[2],p.lineno(1)+1-ContBot.numLines) p[0].check(simTabActual,p.lineno(1)+1-ContBot.numLines,True)
class ArbolProgram(ArbolInst): def __init__(self,decList,execute): self.h2 = execute if not(decList is None): self.h1 = decList else: self.h1 = None self.simTab = SimTab() def printArb(self,tabs,usarTabs): if not(self.h1 is None): self.h2.printArb(tabs,usarTabs) else: self.h2.printArb(tabs,usarTabs) def run(self,simTab): if not(self.h1 is None): self.simTab.agregarDecInit(self.h1.h2,False) self.h2.run(self.simTab)