예제 #1
0
        public NodoArbol OPERACION()
        {
            if (i >= this.tokensASintactico.Count)
            {
                return(null);
            }
            else
            {
                if (this.tokensASintactico.ElementAt(i).lexemaval.ToLower().Equals("crear"))
                {
                    NodoArbol a = new NodoArbol("OPERACION", "", count);
                    count++;
                    NodoArbol creacion = new NodoArbol("CREACION", "", count);
                    count++;
                    NodoArbol crear = new NodoArbol("crear", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(reservada);
                    NodoArbol tabla = new NodoArbol("tabla", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(reservada);
                    NodoArbol id = new NodoArbol("id", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(identificador);
                    Match(parentesisa);
                    NodoArbol c = CAMPOS_CREACION();
                    Match(parentesisc);
                    Match(pycoma);
                    NodoArbol d = OPERACION();

                    a.AddHijos(creacion);
                    creacion.AddHijos(crear);
                    creacion.AddHijos(tabla);
                    creacion.AddHijos(id);
                    creacion.AddHijos(c);
                    a.AddHijos(d);
                    return(a);
                }
                else if (this.tokensASintactico.ElementAt(i).lexemaval.ToLower().Equals("insertar"))
                {
                    NodoArbol a = new NodoArbol("OPERACION", "", count);
                    count++;
                    NodoArbol insercion = new NodoArbol("INSERCION", "", count);
                    count++;
                    NodoArbol insertar = new NodoArbol("insertar", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(reservada);
                    NodoArbol en = new NodoArbol("en", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(reservada);
                    NodoArbol id = new NodoArbol("id", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(identificador);
                    NodoArbol valores = new NodoArbol("valores", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(reservada);
                    Match(parentesisa);
                    NodoArbol c = PARAMETROS_INSERTAR();
                    Match(parentesisc);
                    Match(pycoma);
                    NodoArbol d = OPERACION();
                    a.AddHijos(insercion);
                    insercion.AddHijos(insertar);
                    insercion.AddHijos(en);
                    insercion.AddHijos(id);
                    insercion.AddHijos(valores);
                    insercion.AddHijos(c);
                    a.AddHijos(d);
                    return(a);
                }
                else if (this.tokensASintactico.ElementAt(i).lexemaval.ToLower().Equals("seleccionar"))
                {
                    NodoArbol a = new NodoArbol("OPERACION", "", count);
                    count++;
                    NodoArbol SELECCION = new NodoArbol("SELECCION", "", count);
                    count++;
                    NodoArbol seleccionar = new NodoArbol("seleccionar", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(reservada);
                    NodoArbol c  = PARAMETROS_SELECCION();
                    NodoArbol de = new NodoArbol("de", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(reservada);
                    NodoArbol d = LISTA_TABLAS();
                    NodoArbol e = CONDICION_SELECCION();
                    Match(pycoma);
                    NodoArbol f = OPERACION();
                    a.AddHijos(SELECCION);
                    SELECCION.AddHijos(seleccionar);
                    SELECCION.AddHijos(c);
                    SELECCION.AddHijos(de);
                    SELECCION.AddHijos(d);
                    SELECCION.AddHijos(e);
                    a.AddHijos(f);
                    return(a);
                }
                else if (this.tokensASintactico.ElementAt(i).lexemaval.ToLower().Equals("eliminar"))
                {
                    NodoArbol a = new NodoArbol("OPERACION", "", count);
                    count++;
                    NodoArbol eliminacion = new NodoArbol("ELIMINACION", "", count);
                    count++;
                    NodoArbol eliminar = new NodoArbol("eliminar", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(reservada);
                    NodoArbol de = new NodoArbol("de", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(reservada);
                    NodoArbol id = new NodoArbol("id", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(identificador);
                    NodoArbol c = CONDICION_ELIMINACION();
                    Match(pycoma);
                    NodoArbol d = OPERACION();
                    a.AddHijos(eliminacion);
                    eliminacion.AddHijos(eliminar);
                    eliminacion.AddHijos(de);
                    eliminacion.AddHijos(id);
                    eliminacion.AddHijos(c);
                    a.AddHijos(d);
                    return(a);
                }
                else if (this.tokensASintactico.ElementAt(i).lexemaval.ToLower().Equals("actualizar"))
                {
                    NodoArbol a = new NodoArbol("OPERACION", "", count);
                    count++;
                    NodoArbol actualizacion = new NodoArbol("ACTUALIZACION", "", count);
                    count++;
                    NodoArbol actualizar = new NodoArbol("actualizar", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(reservada);
                    NodoArbol id = new NodoArbol("id", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(identificador);
                    NodoArbol establecer = new NodoArbol("establecer", this.tokensASintactico.ElementAt(i).lexemaval.ToLower(), count);
                    count++;
                    Match(reservada);
                    Match(parentesisa);
                    NodoArbol c = PARAMETROS_ESTABLECER();
                    Match(parentesisc);
                    NodoArbol d = CONDICION_SELECCION();
                    Match(pycoma);
                    NodoArbol e = OPERACION();
                    a.AddHijos(actualizacion);
                    actualizacion.AddHijos(actualizar);
                    actualizacion.AddHijos(id);
                    actualizacion.AddHijos(establecer);
                    actualizacion.AddHijos(c);
                    actualizacion.AddHijos(d);
                    a.AddHijos(e);
                    return(a);
                }
                else
                {
                    return(null);
                }
            }
        }
예제 #2
0
 public void AddHijos(NodoArbol hijo)
 {
     getHijos().Add(hijo);
 }