Пример #1
0
        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();
            }
        }
Пример #2
0
        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]);
        }
Пример #3
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();
        }