예제 #1
0
        public static string escrbiriAtributosContenedor(string nombre, Simbolo nodo)
        {
            string result = "";
            TeDeU  type   = nodo.obtenerInstanciaTipo();

            if (Utilidades.esPrimitivo(type))
            {
                return($"{nodo.obtenerValor().stringBonito()} ");
            }

            if (nodo.obtenerValor() is ZInstancia instancia)
            {
                result += escribirContenedor(instancia);

                return(result);
            }

            if (nodo.obtenerValor() is ZNull)
            {
                return($"{nodo.obtenerValor().stringBonito()}");
            }



            return(result);
        }
예제 #2
0
        public override object ejecutarSinposicion(ZContenedor e)
        {
            foreach (NodoAsignar nodo in filas)
            {
                if (nodo.Exp2 is NodoFila n2)
                {
                    Simbolo    algo = (Simbolo)nodo.Exp1.ejecutar(e);
                    ZInstancia ins  = algo.obtenerInstanciaTipo().crearInstancia(e);
                    n2.ejecutar(ins);
                    algo.definirValor(ins);
                }

                if (!(nodo.Exp2 is NodoFila))
                {
                    nodo.ejecutar(e);
                }
            }

            return(null);
        }
예제 #3
0
        public string writeAtributes(Simbolo simbolo)
        {
            string result = "";

            TeDeU tipo = simbolo.obtenerInstanciaTipo();

            if (Utilidades.esPrimitivo(tipo) || simbolo.obtenerValor() is ZNull)
            {
                return($"{simbolo.obtenerValor().stringBonito()}");
            }


            if (simbolo.obtenerValor() is ZInstancia)
            {
                return("\n" + writeContainer(simbolo.obtenerValor(), true));
            }

            throw new RuntimeBinderException("erro al escrbirir archivo chison, bd-atributos");
            //return result;
        }