コード例 #1
0
        public static void InsertarId(Nodo n)
        {
            if (n.getTipoToken() == token.Type.ID)
            {
                if (!Symtab.BuscarVariable(n))
                {
                    Symtab.AñadirVariable(n);
                }
                else
                {
                    Symtab.Variable dato = Symtab.GetVariable(n);
                    n.setTipoDato(dato.tipo);
                    Symtab.ActualizarVariable(n);
                }
            }

            if (n.hijos[0] != null)
            {
                InsertarId(n.hijos[0]);
            }
            if (n.hijos[1] != null)
            {
                InsertarId(n.hijos[1]);
            }
            if (n.hijos[2] != null)
            {
                InsertarId(n.hijos[2]);
            }
            if (n.hermano != null)
            {
                InsertarId(n.hermano);
            }
        }
コード例 #2
0
 private static Nodo ActualizarNodo(Nodo n)
 {
     Symtab.Variable aux = Symtab.GetVariable(n);
     n.setTipoDato(aux.tipo);
     return(n);
 }