public static void OpenScope(Symbol sym) { Scope s = new Scope(); s.nArgs = 0; s.nLocs = 0; s.outer=topScope; topScope=s; //Codigo Tabla de Simbolos ultimosNodos.Push(ultimoNodo); ultimosParametros.Push(new List<TreeNode>()); if (sym != null) { profundidad++; Program1.form1.arbolTS.Nodes.Add("Scope de :Type: " + sym.kind + " | Name: " + sym.name); } if (muestraTabSimb) Program1.form1.instContinuar.ShowDialog(); //MessageBox.Show("ContinuarTSimb","T de simbolo"); //Codigo Tabla de Simbolos }
public static void CloseScope() { topScope = topScope.outer; //Codigo Tabla de Simbolos TreeNode ultimoNodo1 = ultimosNodos.Pop(); int c = Program1.form1.arbolTS.Nodes[Program1.form1.arbolTS.Nodes.Count - 1].Nodes.Count; Program1.form1.arbolTS.Nodes.RemoveAt(profundidad--); ultimoNodo1.Nodes.AddRange(ultimosParametros.Pop().ToArray()); Program1.form1.arbolTS.ExpandAll(); if (muestraTabSimb) Program1.form1.instContinuar.ShowDialog(); //MessageBox.Show("ContinuarTSimb", "T de simbolo"); //Codigo Tabla de Simbolos }