예제 #1
0
        /*
         |-------------------------------------------------------------------------------------------------------------------
         | FORMULARiO
         |-------------------------------------------------------------------------------------------------------------------
         |
         */

        public elementoPolimorfo getPolimorfo()
        {
            elementoPolimorfo retorno = null;

            if (hayErrores())
            {
                return(retorno);
            }


            nodoModelo tempNodo = getNodo("TIPO");

            if (tempNodo != null)
            {
                _TIPO      temp  = (_TIPO)tempNodo;
                nodoModelo temp2 = getNodo("VAR_ARREGLO");
                if (temp2 != null)
                {
                    _VAR_ARREGLO tempVar = (_VAR_ARREGLO)temp2;

                    token visibilidad = new token("publico");
                    token tipo        = temp.getTipo();
                    token nombre      = tempVar.getIdentificador();
                    int   dimensiones = tempVar.getDimensiones();
                    retorno = new elementoPolimorfo(visibilidad, tablaSimbolos, tipo, nombre, new _LST_CUERPO("LST_CUERPO", tablaSimbolos), dimensiones);
                    return(retorno);
                }
            }

            return(retorno);
        }
        public int getDimensiones()
        {
            int        retorno = 0;
            nodoModelo temp2   = getNodo("VAR_ARREGLO");

            if (temp2 != null)
            {
                _VAR_ARREGLO tempVar = (_VAR_ARREGLO)temp2;
                retorno = tempVar.getDimensiones();
            }
            return(retorno);
        }
        public token getIdentificador()
        {
            token      retorno = new token("--");
            nodoModelo temp2   = getNodo("VAR_ARREGLO");

            if (temp2 != null)
            {
                _VAR_ARREGLO tempVar = (_VAR_ARREGLO)temp2;
                retorno = tempVar.getIdentificador();
            }
            return(retorno);
        }
예제 #4
0
        public override void cargarPolimorfismo(elementoPolimorfo elem)
        {
            if (hayErrores())
            {
                return;
            }

            nodoModelo tempNodo = getNodo("TIPO");

            if (tempNodo != null)
            {
                _TIPO      temp  = (_TIPO)tempNodo;
                nodoModelo temp2 = getNodo("VAR_ARREGLO");
                if (temp2 != null)
                {
                    _VAR_ARREGLO tempVar = (_VAR_ARREGLO)temp2;
                    elem.insertarParametro(tempVar.getIdentificador(), temp.getTipo(), tempVar.getDimensiones());
                }
            }
        }
        public List <int> getDimensiones()
        {
            List <int> retorno = new List <int>();

            nodoModelo temp2 = getNodo("VAR_ARREGLO");

            if (temp2 != null)
            {
                _VAR_ARREGLO tempVar = (_VAR_ARREGLO)temp2;
                int          el      = tempVar.getDimensiones();

                for (int i = 0; i < el; i++)
                {
                    //lo lleno de menos uno para indicar que no se ha establecido el limite
                    retorno.Add(-1);
                }
            }


            return(retorno);
        }