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); } } } }
public Ambito(Ambito anterior, String idAmbito) { this.Anterior = anterior; this.idAmbito = idAmbito; this.tablaVars = new TablaVariables(); this.tablaFuns = new TablaFunciones(); this.tablaConst = new TablaConstructores(); }
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); } } } }