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); }
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); }
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; } }
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); }
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); }
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(); } }
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); }
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); }