Пример #1
0
        public void ejecutarAnalizador(string entrada)
        {
            AnalizadorChison analizador = new AnalizadorChison();
            Parser           parser     = new Parser(analizador);
            ParseTree        arbol      = parser.Parse(entrada);
            ParseTreeNode    raiz       = arbol.Root;

            if (raiz == null || arbol.ParserMessages.Count > 0 || arbol.HasErrors())
            {
                if (raiz == null || arbol.ParserMessages.Count > 0 || arbol.HasErrors())
                {
                    //---------------------> Hay Errores

                    foreach (var item in arbol.ParserMessages)
                    {
                        MessageBox.Show("Error->" + item.Message + " Line:" + item.Location.Line);
                    }
                    return;
                }
            }

            List <Instruccion> listIns = (List <Instruccion>)arbol.Root.AstNode;
            ZContenedor        global  = new ZContenedor(null, null);

            Dbms.cargarTedeUs();

            EjecutarAnalizadorCQL.loadToday(global);
            EjecutarAnalizadorCQL.loadNow(global);

            Utilidades.ejecutarSenteciass(listIns, global);

            BaseDeDatos bd = Dbms.BdSeleccionada;

            Console.WriteLine("--- analizado chison ---");
        }
Пример #2
0
        public void pruebaCqlFuncionesList()
        {
            var entrada = @"

list<int> ids = [];
log(ids);

ids.insert(1993);
ids.insert(93);
ids.insert(17);
log(ids);

log(ids.get(1));

ids.set(1, 993);
log(ids);

ids.remove(1);
log(ids);

log(ids.size());

log(ids.contains(17));
log(ids.contains(18));

ids.clear();

log(ids);

";


            var an     = new AnalizadorCQL();
            var parser = new Parser(an);
            var arbol  = parser.Parse(entrada);

            var mensajes = arbol
                           .ParserMessages
                           .Select(message => $"{message.Location} - {message.Message}")
            ;
            var errores = string.Join("\n", mensajes);

            Assert.IsFalse(arbol.HasErrors(), errores);

            List <Instruccion> listIns = (List <Instruccion>)arbol.Root.AstNode;
            ZContenedor        global  = new ZContenedor(null, null);

            Dbms.cargarTedeUs();

            Utilidades.cargarFuncionesNativas(global);

            //funciones
//            loadToday(global);
//            loadNow(global);



            Utilidades.ejecutarSentencias(listIns, global);
        }
Пример #3
0
        public void pruebaCqlFuncionesAgregacion()
        {
            var entrada = @"


create database prueba;
use prueba;
create table alumnos (peso int, edad int);
insert into alumnos values (50, 26);
insert into alumnos values (502, 36);
insert into alumnos values (93, 17);

int algo = count(<<select * from alumnos>>);
log(algo);

int sumaTotal = sum(<< select edad from alumnos >>);
log(sumaTotal);

int promedio = avg(<< select edad from alumnos >>);
log(promedio);

int maximo = max(<< select edad from alumnos >>);
int minimo = min(<< select edad from alumnos >>);
log(maximo);
log(minimo);


";


            var an     = new AnalizadorCQL();
            var parser = new Parser(an);
            var arbol  = parser.Parse(entrada);

            var mensajes = arbol
                           .ParserMessages
                           .Select(message => $"{message.Location} - {message.Message}")
            ;
            var errores = string.Join("\n", mensajes);

            Assert.IsFalse(arbol.HasErrors(), errores);

            List <Instruccion> listIns = (List <Instruccion>)arbol.Root.AstNode;
            ZContenedor        global  = new ZContenedor(null, null);

            Dbms.cargarTedeUs();

            Utilidades.cargarFuncionesNativas(global);

            //funciones
//            loadToday(global);
//            loadNow(global);



            Utilidades.ejecutarSentencias(listIns, global);
        }
Пример #4
0
        public void pruebaCql()
        {
            var entrada = @"


list<int> hola = [2, 3, 4];
int otro = hola[1];
log(otro);

log([2,3,4][1]);

list<int> ids = [9 , 7, 6] + [ 3, 1, 0];
log(ids);

list<list<int>> matrix = [ [6, 3, 2], [9, 8], [7] ];
log(matrix);

list<string> vacio = [];
log(vacio);

";

            var an     = new AnalizadorCQL();
            var parser = new Parser(an);
            var arbol  = parser.Parse(entrada);

            var mensajes = arbol
                           .ParserMessages
                           .Select(message => $"{message.Location} - {message.Message}")
            ;
            var errores = string.Join("\n", mensajes);

            Assert.IsFalse(arbol.HasErrors(), errores);

            List <Instruccion> listIns = (List <Instruccion>)arbol.Root.AstNode;
            ZContenedor        global  = new ZContenedor(null, null);

            Dbms.cargarTedeUs();

            //funciones
//            loadToday(global);
//            loadNow(global);


            Utilidades.ejecutarSentencias(listIns, global);
        }
        public void ejecutarAnalizador(string entrada)
        {
            //llamada a los cosos de irony

            AnalizadorCQL an     = new AnalizadorCQL();
            Parser        parser = new Parser(an);
            ParseTree     arbol  = parser.Parse(entrada);
            ParseTreeNode raiz   = arbol.Root;

            //verificar si el arbol no sta nulo
            if (raiz == null || arbol.ParserMessages.Count > 0 || arbol.HasErrors())
            {
                if (raiz == null || arbol.ParserMessages.Count > 0 || arbol.HasErrors())
                {
                    //---------------------> Hay Errores

                    foreach (var item in arbol.ParserMessages)
                    {
                        MessageBox.Show("Error->" + item.Message + " Line:" + item.Location.Line);
                    }
                    return;
                }
            }

            List <Instruccion> listIns = (List <Instruccion>)arbol.Root.AstNode;
            ZContenedor        global  = new ZContenedor(null, null);


            Dbms.cargarTedeUs();

            //funciones
            loadToday(global);
            loadNow(global);


            Utilidades.ejecutarSentencias(listIns, global);
        }