예제 #1
0
        //PROCEDIMIENTOS
        public static void PROCEDIMIENTOS(ParseTreeNode raiz)
        {
            switch (raiz.ChildNodes.Count)
            {
            case 7:
                ambito = raiz.ChildNodes.ElementAt(1).ToString() + "()";
                CUERPOGENERAL(raiz.ChildNodes.ElementAt(5));

                break;

            case 11:
                int x = 350;
                int y = 400;
                ambito = raiz.ChildNodes.ElementAt(0).ToString();
                ObjArreglo nodo = new ObjArreglo();
                //nodo = listaArreglo[0];
                ObjVariable Nuevo  = new ObjVariable(separar(raiz.ChildNodes.ElementAt(3).ToString()), "entero", x.ToString(), ambito);
                ObjVariable Nuevo2 = new ObjVariable(separar(raiz.ChildNodes.ElementAt(6).ToString()), "entero", y.ToString(), ambito);
                listaVariables.Add(Nuevo);
                listaVariables.Add(Nuevo2);
                CUERPOGENERAL(raiz.ChildNodes.ElementAt(9));
                break;

            case 10:
                Console.WriteLine("-----------------------------------------------------------");
                ambito = raiz.ChildNodes.ElementAt(1).ToString();
                CUERPOGENERAL(raiz.ChildNodes.ElementAt(5));
                break;
            }
        }
예제 #2
0
        public static void VARENTERO(ParseTreeNode raiz)
        {
            ObjVariable Nuevo;

            switch (raiz.ChildNodes.Count)
            {
            case 1:
                Nuevo = new ObjVariable(separar(raiz.ChildNodes.ElementAt(0).ToString()), "entero", "0", ambito);
                listaVariables.Add(Nuevo);
                break;

            case 3:
                if (raiz.ChildNodes.ElementAt(0).ToString() == "VARENTERO")
                {
                    VARENTERO(raiz.ChildNodes.ElementAt(0));
                    Nuevo = new ObjVariable(separar(raiz.ChildNodes.ElementAt(2).ToString()), "entero", "0", ambito);
                    listaVariables.Add(Nuevo);
                }
                else
                {
                    Nuevo = new ObjVariable(separar(raiz.ChildNodes.ElementAt(0).ToString()), "entero", F(raiz.ChildNodes.ElementAt(2)).ToString(), ambito);
                    listaVariables.Add(Nuevo);
                }
                break;

            case 5:
                VARENTERO(raiz.ChildNodes.ElementAt(0));
                Nuevo = new ObjVariable(separar(raiz.ChildNodes.ElementAt(2).ToString()), "entero", F(raiz.ChildNodes.ElementAt(4)).ToString(), ambito);
                listaVariables.Add(Nuevo);
                break;
            }
        }
예제 #3
0
        public static void BORRAR(String busc)
        {
            Console.WriteLine("jaja----" + busc);
            ObjVariable nod = null;

            foreach (ObjVariable nodo in listaVariables)
            {
                if (nodo.NombreVar == busc)
                {
                    nod = nodo;
                    break;
                }
            }

            listaVariables.Remove(nod);
        }
예제 #4
0
        public static void ASIGNACIONPARA(ParseTreeNode raiz)
        {
            ObjVariable Nuevo;

            switch (raiz.ChildNodes.Count)
            {
            case 5:
                VARENTERO(raiz.ChildNodes.ElementAt(0));

                Nuevo = new ObjVariable(separar(raiz.ChildNodes.ElementAt(2).ToString()), "entero", F(raiz.ChildNodes.ElementAt(4)).ToString(), ambito);
                listaVariables.Add(Nuevo);
                break;

            case 3:
                AsignacionValor(separar(raiz.ChildNodes.ElementAt(0).ToString()), int.Parse(F(raiz.ChildNodes.ElementAt(2)).ToString()));
                break;
            }
        }