Example #1
0
        public void tomaVariables(TablaVariables tablaPadre, bool ignoraVisibilidad)
        {
            Hashtable auxiliar = tablaPadre.variables;

            foreach (DictionaryEntry data in auxiliar)
            {
                if (data.Value is Variable)
                {
                    Variable aux = (Variable)data.Value;
                    if (this.existeVariable(aux.idSimbolo.ToLower()))
                    {
                        return;
                    }
                    if (aux.Visibilidad == Estatico.Vibililidad.PUBLICO || ignoraVisibilidad)
                    {
                        this.agregarVariableAlAmbito(aux.idSimbolo.ToLower(), aux);
                    }
                }
                else if (data.Value is Arreglo)
                {
                    Arreglo aux = (Arreglo)data.Value;
                    if (this.existeVariable(aux.idSimbolo.ToLower()))
                    {
                        return;
                    }
                    if (aux.Visibilidad == Estatico.Vibililidad.PUBLICO || ignoraVisibilidad)
                    {
                        this.agregarVariableAlAmbito(aux.idSimbolo, aux);
                    }
                }
            }
        }
Example #2
0
 public Ambito(Ambito anterior, String idAmbito)
 {
     this.Anterior   = anterior;
     this.idAmbito   = idAmbito;
     this.tablaVars  = new TablaVariables();
     this.tablaFuns  = new TablaFunciones();
     this.tablaConst = new TablaConstructores();
 }
Example #3
0
        public void heredaAtributos(TablaVariables tabla)
        {
            Hashtable auxiliar = tabla.variables;

            foreach (DictionaryEntry data in auxiliar)
            {
                if (data.Value is Variable)
                {
                    Variable aux = (Variable)data.Value;
                    if (!this.existeVariable(aux.idSimbolo.ToLower()) && (aux.Visibilidad == Estatico.Vibililidad.PUBLICO || aux.Visibilidad == Estatico.Vibililidad.PROTEGIDO))
                    {
                        this.agregarVariableAlAmbito(aux.idSimbolo.ToLower(), aux);
                    }
                }
                else if (data.Value is Arreglo)
                {
                    Arreglo aux = (Arreglo)data.Value;
                    if (!this.existeVariable(aux.idSimbolo.ToLower()) && (aux.Visibilidad == Estatico.Vibililidad.PUBLICO || aux.Visibilidad == Estatico.Vibililidad.PROTEGIDO))
                    {
                        this.agregarVariableAlAmbito(aux.idSimbolo, aux);
                    }
                }
            }
        }