public object analizarImport(string direccion, LinkedList <string> mensajes) { try { string text = System.IO.File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\..\DATABASE", direccion)); GramaticaChison gramatica = new GramaticaChison(); LanguageData lenguaje = new LanguageData(gramatica); Parser parser = new Parser(lenguaje); ParseTree arbol = parser.Parse(text); ParseTreeNode raiz = arbol.Root; if (arbol != null) { for (int i = 0; i < arbol.ParserMessages.Count(); i++) { mensajes.AddLast(arbol.ParserMessages.ElementAt(i).Message + " Linea: " + arbol.ParserMessages.ElementAt(i).Location.Line.ToString() + " Columna: " + arbol.ParserMessages.ElementAt(i).Location.Column.ToString() + ", ARCHIVO: " + direccion); } if (arbol.ParserMessages.Count() < 1) { return(raiz.ChildNodes.ElementAt(0)); } } else { return(null); } } catch (Exception e) { System.Diagnostics.Debug.WriteLine("ERROR CHISON SintacticoChison: " + e.Message); } return(null); }
public void analizar(string cadena) { GramaticaChison gramatica = new GramaticaChison(); LanguageData lenguaje = new LanguageData(gramatica); Parser parser = new Parser(lenguaje); ParseTree arbol = parser.Parse(cadena); ParseTreeNode raiz = arbol.Root; if (arbol != null) { for (int i = 0; i < arbol.ParserMessages.Count(); i++) { System.Diagnostics.Debug.WriteLine(arbol.ParserMessages.ElementAt(i).Message + " Linea: " + arbol.ParserMessages.ElementAt(i).Location.Line.ToString() + " Columna: " + arbol.ParserMessages.ElementAt(i).Location.Column.ToString() + " Archivo: Principal \n"); } if (arbol.ParserMessages.Count() < 1) { graficar(raiz); LinkedList <string> mensajes = new LinkedList <string>(); ejecutar(raiz.ChildNodes.ElementAt(2), mensajes); } } else { System.Diagnostics.Debug.WriteLine("ERROR CHISON VACIO"); } }