public void Expresion() { actual = tokens.ElementAt(i); path = actual.lexema + ".dot"; file = File.CreateText(path); file.WriteLine("digraph G{"); file.WriteLine("node[shape=circle, style=filled, color= Gray70];"); file.WriteLine("edge[color=black]"); i++; actual = tokens.ElementAt(i); if (actual.codigo.Equals(27)) { i++; actual = tokens.ElementAt(i); if (actual.codigo.Equals(26)) { //arbol = new Arbol(estado); i++; actual = tokens.ElementAt(i); tokens Opaux = null; while (actual.codigo != 16) { if (actual.tipo.Equals("Operacion")) { Opaux = actual; pila.Push(actual); i++; actual = tokens.ElementAt(i); } else if (actual.codigo.Equals(14) || actual.codigo.Equals(15)) { i++; actual = tokens.ElementAt(i); } else { Graph(Opaux); Opaux = null; i++; actual = tokens.ElementAt(i); } while (Verificar() == true) { nodoP auxiliar = pila.peek(); GraphnodoP(auxiliar); } } while (pila.primero != null) { nodoP aux = pila.peek(); GraphnodoP(aux); } estado = 0; file.WriteLine("}"); file.Close(); arbol.reporte(path); i++; actual = tokens.ElementAt(i); while (actual.codigo.Equals(5) || actual.codigo.Equals(6)) { i++; actual = tokens.ElementAt(i); } if (actual.codigo.Equals(7)) { Expresion(); } while (actual.codigo.Equals(5) || actual.codigo.Equals(6)) { i++; actual = tokens.ElementAt(i); } ValidarExpresiones valExpr = new ValidarExpresiones(i, tokens, SIGNOS, conjuntos); valExpr.Validar(); } } }
public void GraphnodoP(nodoP aux) { ElegirOp(aux); }
public void Graph(tokens Opaux) { nodoP aux = pila.peek(); if (Opaux == null) { pila.Push(actual); } else if (Opaux.codigo.Equals(8)) { if (aux.actual.tipo != "Operacion") { //arbol.Disyuncion(aux.actual, actual); GraficarDisyuncion(aux.actual, actual); pila.Pop(); pila.Pop(); tokens tokenP = new tokens(aux.actual, actual, inicial, final, 8); //tokens tokenP = new tokens(arbol, arbol.eInicio, arbol.eFinal); pila.Push(tokenP); } else { pila.Push(actual); } } else if (Opaux.codigo.Equals(9)) { if (aux.actual.tipo != "Operacion") { //arbol.Concatenacion(aux.actual, actual); GraficarConcatenacion(aux.actual, actual); pila.Pop(); pila.Pop(); tokens tokenP = new tokens(aux.actual, actual, inicial, final, 9); //tokens tokenP = new tokens(arbol, arbol.eInicio, arbol.eFinal); pila.Push(tokenP); } else { pila.Push(actual); } } else if (Opaux.codigo.Equals(10)) { pila.Pop(); Graficar0oUnaVez(actual); tokens tokenP = new tokens(aux.actual, actual, inicial, final, 10); /*arbol.G0oUnaVez(actual); * tokens tokenP = new tokens(arbol, arbol.eInicio, arbol.eFinal);*/ pila.Push(tokenP); } else if (Opaux.codigo.Equals(11)) { pila.Pop(); //arbol.G1oMasVeces(actual); Graficar1oMasVeces(actual); tokens tokenP = new tokens(aux.actual, actual, inicial, final, 11); //tokens tokenP = new tokens(arbol, arbol.eInicio, arbol.eFinal); pila.Push(tokenP); } else if (Opaux.codigo.Equals(12)) { pila.Pop(); //arbol.kleene(actual); GraficarKleene(actual); tokens tokenP = new tokens(aux.actual, actual, inicial, final, 12); //tokens tokenP = new tokens(arbol, arbol.eInicio, arbol.eFinal); pila.Push(tokenP); } }