public void setizquierda(Nodo izquierda) { this.izquierda = izquierda; }
public void setderecha(Nodo derecha) { this.derecha = derecha; }
public LinkedList <Nodo> generarLista(LinkedList <Token> tokens) { imagenes = new LinkedList <Image>(); graficar = 0; AFD = new LinkedList <Image>(); mueves = new LinkedList <Mueve>(); Tablas = new LinkedList <Image>(); lTokens = tokens; lMueves = new LinkedList <LinkedList <Mueve> >(); nombresExp = new LinkedList <string>(); fin = 0; for (int i = 0; i < lTokens.Count(); i++) { token = lTokens.ElementAt(i); if (token.getTipo() == Token.Tipo.ID && lTokens.ElementAt(i + 1).getTipo() == Token.Tipo.FLECHA && (lTokens.ElementAt(i + 2).getTipo() == Token.Tipo.ASTERISCO || lTokens.ElementAt(i + 2).getTipo() == Token.Tipo.PUNTO || lTokens.ElementAt(i + 2).getTipo() == Token.Tipo.INTERROGACION || lTokens.ElementAt(i + 2).getTipo() == Token.Tipo.OR || lTokens.ElementAt(i + 2).getTipo() == Token.Tipo.MAS)) { lNodos = new LinkedList <Nodo>(); lNuevos = new LinkedList <Token>(); tokensNuevos = new LinkedList <Nodo>(); entradas = new LinkedList <string>(); nombresExp.AddLast(token.getValor()); i = i + 2; token = lTokens.ElementAt(i); while (token.getTipo() != Token.Tipo.PUNTOYCOMA) { if (token.getTipo() != Token.Tipo.COMILLA_DOBLES && token.getTipo() != Token.Tipo.LLAVE_ABRE && token.getTipo() != Token.Tipo.LLAVE_CIERRA && token.getTipo() != Token.Tipo.CORCHETECIERRA && token.getTipo() != Token.Tipo.CORCHETEABRE && token.getTipo() != Token.Tipo.DOS_PUNTOS) { lNuevos.AddLast(token); } i++; token = lTokens.ElementAt(i); } Nodo nodo; for (int j = 0; j < lNuevos.Count(); j++) { token = lNuevos.ElementAt(j); switch (token.getTipo()) { case Token.Tipo.PUNTO: nodo = new Nodo(token.getValor(), token.getTipo(), j, token.getTipo()); tokensNuevos.AddLast(nodo); break; case Token.Tipo.OR: nodo = new Nodo(token.getValor(), token.getTipo(), j, token.getTipo()); tokensNuevos.AddLast(nodo); break; case Token.Tipo.MAS: nodo = new Nodo(token.getValor(), token.getTipo(), j, token.getTipo()); tokensNuevos.AddLast(nodo); break; case Token.Tipo.ASTERISCO: nodo = new Nodo(token.getValor(), token.getTipo(), j, token.getTipo()); tokensNuevos.AddLast(nodo); break; case Token.Tipo.INTERROGACION: nodo = new Nodo(token.getValor(), token.getTipo(), j, token.getTipo()); tokensNuevos.AddLast(nodo); break; case Token.Tipo.CADENA: nodo = new Nodo(token.getValor(), token.getTipo(), j, token.getTipo()); tokensNuevos.AddLast(nodo); break; case Token.Tipo.ID: nodo = new Nodo(token.getValor(), token.getTipo(), j, token.getTipo()); tokensNuevos.AddLast(nodo); break; case Token.Tipo.SALTODELINEA: nodo = new Nodo(token.getValor(), token.getTipo(), j, token.getTipo()); tokensNuevos.AddLast(nodo); break; case Token.Tipo.TABULACION: nodo = new Nodo(token.getValor(), token.getTipo(), j, token.getTipo()); tokensNuevos.AddLast(nodo); break; case Token.Tipo.COMILLA: nodo = new Nodo(token.getValor(), token.getTipo(), j, token.getTipo()); tokensNuevos.AddLast(nodo); break; case Token.Tipo.SLASHCOMILLAS: nodo = new Nodo(token.getValor(), token.getTipo(), j, token.getTipo()); tokensNuevos.AddLast(nodo); break; case Token.Tipo.TODO: nodo = new Nodo(token.getValor(), token.getTipo(), j, token.getTipo()); tokensNuevos.AddLast(nodo); break; } } int r = 0; while (tokensNuevos.Count() > 1) { if (nodoBinario(r)) { r = 0; } else if (nodoUnario(r)) { r = 0; } else { r++; } Console.WriteLine("entra"); } tokensNuevos.ElementAt(0).imprimirNodos(); imagenes.AddLast(generarGraphviz()); LinkedList <Transicion> transicions = new LinkedList <Transicion>(); transicions = tokensNuevos.ElementAt(0).generarTransiciones("F", "L", transicions); Thompson thompson = new Thompson(); mueves = thompson.generarAFD(transicions); lMueves.AddLast(thompson.getMueves()); AFD.AddLast(Run(thompson.getGraphivz())); Tablas.AddLast(Run(thompson.tablaDeTransiciones())); // generarImagen(generarGraphviz()); } else if (token.getTipo() == Token.Tipo.PORCENTAJE) { fin = i; i = lTokens.Count(); } } return(lNodos); }