Example #1
0
        private void I_SELECCIONAR(NodoAST raiz)
        {
            /*I_SELECCIONAR	⇒	SELECCIONAR OP_SELECT DE L_TABLAS I_SELECCIONAR_1 ;*/
            NodoAST nodo = new NodoAST(id, "INSTRUCCION SELECCIONAR");

            sumarID();

            match(TokenSQL.PR_SELECCIONAR, nodo);

            NodoAST nodoA = new NodoAST(id, "COLUMNAS");

            sumarID();
            OP_SELECT(nodoA);
            nodo.insertarHijo(nodoA);

            match(TokenSQL.PR_DE, nodo);

            NodoAST nodoB = new NodoAST(id, "TABLAS");

            sumarID();
            L_TABLAS(nodoB);
            nodo.insertarHijo(nodoB);

            NodoAST nodoC = new NodoAST(id, "DONDE");

            sumarID();
            I_SELECCIONAR_1(nodoC);
            nodo.insertarHijo(nodoC);

            match(TokenSQL.CL_FL, nodo);

            raiz.insertarHijo(nodo);
        }
Example #2
0
        private void I_ACTUALIZAR(NodoAST raiz)
        {
            /*I_ACTUALIZAR	⇒	ACTUALIZAR ID ESTABLECER ( L_ESTABLECER ) I_ACTUALIZAR_1 ;*/
            NodoAST nodo = new NodoAST(id, "INSTRUCCION ACTUALIZAR");

            sumarID();

            match(TokenSQL.PR_ACTUALIZAR, nodo);
            match(TokenSQL.ID, nodo);
            match(TokenSQL.PR_ESTABLECER, nodo);
            match(TokenSQL.CL_PARENTESIS_1, nodo);

            NodoAST nodoA = new NodoAST(id, "LISTA ESTABLECER");

            sumarID();
            L_ESTABLECER(nodoA);
            nodo.insertarHijo(nodoA);

            match(TokenSQL.CL_PARENTESIS_2, nodo);

            I_ACTUALIZAR_1(nodo);

            match(TokenSQL.CL_FL, nodo);

            raiz.insertarHijo(nodo);
        }
Example #3
0
        private void I_ELIMINAR_1(NodoAST raiz)
        {
            /*I_ELIMINAR_1	⇒	DONDE CONDICION I_ELIMINAR_2
             *              |
             */
            switch (preanalisis.getToken())
            {
            case TokenSQL.PR_DONDE:     // Palabra reservada DONDE
                NodoAST nodoA = new NodoAST(id, "DONDE");
                sumarID();

                match(TokenSQL.PR_DONDE, nodoA);

                CONDICION(nodoA);

                I_ELIMINAR_2(nodoA);

                raiz.insertarHijo(nodoA);
                break;

            default:
                //No hacer nada
                break;
            }
        }
Example #4
0
        private void CONDICION(NodoAST raiz)
        {
            /*CONDICION		⇒	ID OPERADOR VALOR*/
            NodoAST nodo = new NodoAST(id, "CONDICION");

            sumarID();

            match(TokenSQL.ID, nodo);

            OPERADOR(nodo);

            VALOR(nodo);

            raiz.insertarHijo(nodo);
        }
Example #5
0
        private void I_ELIMINAR(NodoAST raiz)
        {
            /*I_ELIMINAR		⇒	ELIMINAR DE ID I_ELIMINAR_1 ;*/
            NodoAST nodo = new NodoAST(id, "INSTRUCCION ELIMINAR");

            sumarID();

            match(TokenSQL.PR_ELIMINAR, nodo);
            match(TokenSQL.PR_DE, nodo);
            match(TokenSQL.ID, nodo);

            //NodoAST nodoA = new NodoAST(id, "DONDE");
            //sumarID();
            //I_ELIMINAR_1(nodoA);
            //nodo.insertarHijo(nodoA);
            I_ELIMINAR_1(nodo);

            match(TokenSQL.CL_FL, nodo);

            raiz.insertarHijo(nodo);
        }
Example #6
0
        private void match(TokenSQL terminal, NodoAST raiz)
        {
            /* si preanalisis = terminal
             * entonces preanalisis = siguiente toekn
             * sino error sintactico
             */
            Console.WriteLine("Match: " + terminal + " == " + preanalisis.getToken());
            if (preanalisis.getToken() == terminal)
            {
                raiz.insertarHijo(new NodoAST(preanalisis)); // Insertamos token en el árbol AST
                preanalisis = getToken();
                index++;
            }
            else
            {
                //Error

                insertarError("un token[" + terminal.ToString() + "]", preanalisis);
                panico();
            }
        }
Example #7
0
        private void CREAR_TABLA(NodoAST raiz)
        {
            /*CREAR TABLA ID ( L_CAMPOS ) ; */
            NodoAST nodo = new NodoAST(id, "INSTRUCCION CREAR TABLA");

            sumarID();

            match(TokenSQL.PR_CREAR, nodo);
            match(TokenSQL.PR_TABLA, nodo);
            match(TokenSQL.ID, nodo);
            match(TokenSQL.CL_PARENTESIS_1, nodo);

            NodoAST nodoB = new NodoAST(id, "LISTA DE CAMPOS");

            sumarID();
            L_CAMPOS(nodoB);
            nodo.insertarHijo(nodoB);

            match(TokenSQL.CL_PARENTESIS_2, nodo);
            match(TokenSQL.CL_FL, nodo);

            raiz.insertarHijo(nodo);
        }
Example #8
0
        private void I_INSERTAR(NodoAST raiz)
        {
            /*I_INSERTAR        ⇒	INSERTAR EN ID VALORES ( L_VALORES ) ;*/
            NodoAST nodo = new NodoAST(id, "INSTRUCCION INSERTAR");

            sumarID();

            match(TokenSQL.PR_INSERTAR, nodo);
            match(TokenSQL.PR_EN, nodo);
            match(TokenSQL.ID, nodo);
            match(TokenSQL.PR_VALORES, nodo);
            match(TokenSQL.CL_PARENTESIS_1, nodo);

            NodoAST nodoA = new NodoAST(id, "LISTA DE VALORES");

            sumarID();
            L_VALORES(nodoA);
            nodo.insertarHijo(nodoA);

            match(TokenSQL.CL_PARENTESIS_2, nodo);
            match(TokenSQL.CL_FL, nodo);

            raiz.insertarHijo(nodo);
        }