public Procedimiento(ParseTreeNode raizCompleta) { listaParametros = new List <Parametro>(); GramaticaSDB gramatica = new GramaticaSDB(); LanguageData lenguaje1 = new LanguageData(gramatica); Parser par = new Parser(lenguaje1); agregarComa(raizCompleta); getCodigo(raizCompleta); codigoFuente = codigoFuente.Replace("@ ", "@"); ParseTree arbol = par.Parse(this.codigoFuente); ParseTreeNode raiz = arbol.Root.ChildNodes[0].ChildNodes[0]; this.raizMetodo = raiz; this.nombre = raiz.ChildNodes[0].Token.Text.ToLower(); this.id = getId(this.nombre, raiz.ChildNodes[1]); if (raiz.ChildNodes.Count == 3)// Procedimiento { this.tipoRetorno = ""; } else // Es funcion { this.tipoRetorno = raiz.ChildNodes[2].ChildNodes[0].Token.Text.ToLower(); } }
public ParseTreeNode getRaiz() { GramaticaSDB gramatica = new GramaticaSDB(); LanguageData lenguaje1 = new LanguageData(gramatica); Parser par = new Parser(lenguaje1); ParseTree arbol = par.Parse(this.codigoFuente.Replace("~", "")); return(arbol.Root.ChildNodes[0].ChildNodes[0]); }
public void ejecutar(String comandos) { outputConsola.Text = ""; Form1.Mensajes = new List <string>();; Form1.errores = new List <Error>(); Form1.comandos = comandos; GramaticaSDBCompleta gramatica = new GramaticaSDBCompleta(); LanguageData lenguaje1 = new LanguageData(gramatica); Parser par = new Parser(lenguaje1); ParseTree arbol1 = par.Parse(comandos); if (arbol1.Root != null) { //Interprete interprete = new Interprete(arbol1.Root.ChildNodes[0]); //interprete.guardarMetodos(arbol1.Root.ChildNodes[0]); } GramaticaSDB grammar = new GramaticaSDB(); LanguageData lenguaje = new LanguageData(grammar); Parser p = new Parser(lenguaje); ParseTree arbol = p.Parse(inputConsole.Text); AnalizadorXML.Analizador analizador = new AnalizadorXML.Analizador(); if (arbol.Root != null) { imprimirSalida("Salida..."); //analizador.Genarbol(arbol.Root); //analizador.generateGraph2("Ejemplo.txt"); i = new Interprete(arbol.Root.ChildNodes[0], arbol1.Root.ChildNodes[0]); Resultado result = i.ejecutar(arbol.Root.ChildNodes[0]); //imprimirSalida(result.valor+""); } else { imprimirSalida(getErrores(arbol)); } mostrarMensajes(); //mostrarErrores(); }