예제 #1
0
 public void CargarHojas(string campo, CNodo nodo)
 {
     if (campo != null)
     {
         string[] separados = campo.Split().Where(i => i != "").ToArray();
         if (separados[0].Equals("READ") || separados[0].Equals("WRITE"))
         {
             int    i           = 2;
             String valorString = "";
             while (!separados[i].Equals(","))
             {
                 valorString += separados[i] + " ";
                 i++;
             }
             int      tam          = separados.Length;
             String[] separadosAux = { separados[0], separados[1], valorString, separados[tam - 3], separados[tam - 2], separados[tam - 1] };
             separados = separadosAux;
         }
         for (int c = 0; c < separados.Length; c++)
         {
             arbol.Insertar(separados[c], nodo);
         }
     }
     else
     {
         arbol.Insertar("", nodoAux);  //el dato va a estar vacio, representando epsilon
     }
 }
예제 #2
0
 public void InicializarPila()  //inicializa la pila y aplica el simbolo fin y el primer token no terminal de la gramatica, tambien coloca el nodo raiz que seria el primero de la gramatica
 {
     pila = new Stack();
     pila.Push("$");                       // fin de la pila
     pila.Push("PROG");                    //no terminal inicial de la gramtica ll1
     arbol = new CArbol();
     raiz  = arbol.Insertar("PROG", null); // inicializa el arbol , al ponerle null lo inicializa como raiz al nodo
 }