// Función con una gram'atica estatica para probar primeros... public void TestPrimeros() { Primeros primeros = new Primeros(MainWindow.productions, noTerminales); var nada = primeros.GetView(); PrimerosTable.ItemsSource = nada; }
private void GenerarTabla_Click(object sender, RoutedEventArgs e) { if (!String.IsNullOrEmpty(EntradaGramatica.Text)) { // Se limpia UI tabla A.S TablaAnalisis.ItemsSource = null; // Se separan el texto de entrada de la gramática y se crea la lista de producciones Tokenizer obtenProd = new Tokenizer(); MainWindow.productions = obtenProd.obtenProducciones(EntradaGramatica.Text); noTerminales = obtenProd.NT; List <Token> simbolosGramaticales = obtenProd.tokens; simbolosGramaticales.RemoveAll(pred => pred.Content == "ε"); // Se calcula el conjunto de primeros para la gramática Primeros primeros = new Primeros(MainWindow.productions, noTerminales); //Se calcula el AFD de la lista de producciones AFDGenerator AFDGen = new AFDGenerator(MainWindow.productions, primeros, simbolosGramaticales); List <Node> AFD = AFDGen.GenerateAFD(); //================== //AFDGen.AddAugmentedProduction(); App.currentParser = new Parser(AFD); //================= //App.currentParser.EvalString("n + n - n - n + n"); // Se muestran los primeros en la UI PrimerosTable.ItemsSource = primeros.GetView(); // Se crea la tabla de Analisis Sintáctico //App.currentParser.CreateSyntaxisAnalysisTable(); // Se muestra la tabla de Analisis Sintáctico ShowTablaAS(App.currentParser.States); } }