예제 #1
0
        public void saveVarFunction(string id, string valor, string type)
        {
            Ambit_Trad amb = this;

            if (!amb.variables.ContainsKey(id))
            {
                amb.variables[id] = (new Identifier_Trad(valor, id, type, "Variable"));
            }
        }
예제 #2
0
        public void saveFuncion(string id, Function_Trad function)
        {
            Ambit_Trad amb = this;

            if (!amb.functions.ContainsKey(id))
            {
                amb.functions[id] = function;
            }
        }
예제 #3
0
        public void saveArray(string id, Arrays_Trad arrays)
        {
            Ambit_Trad amb = this;

            if (!amb.Arrays.ContainsKey(id.ToLower()))
            {
                amb.Arrays[id.ToLower()] = arrays;
            }
        }
예제 #4
0
        public void setVariableFuncion(string id, string valor, string type, string tipo_dato)
        {
            Ambit_Trad env = this;

            if (env.Variables.ContainsKey(id))
            {
                env.Variables[id] = new Identifier_Trad(valor, id, type, tipo_dato);
            }
        }
예제 #5
0
 public Ambit_Trad(Ambit_Trad a, string n, string ni, bool isnull)
 {
     this.variables            = new Dictionary <string, Identifier_Trad>();
     this.functions            = new Dictionary <string, Function_Trad>();
     this.procedures           = new Dictionary <string, string>();
     this.ambit_name           = n;
     this.ambit_name_inmediato = ni;
     this.anterior             = a;
     this.ambit_null           = isnull;
 }
예제 #6
0
        public Ambit_Trad getGeneral()
        {
            Ambit_Trad amb = this;

            while (amb.anterior != null)
            {
                amb = amb.anterior;
            }
            return(amb);
        }
예제 #7
0
        public Identifier_Trad getVariableFunctionInAmbit(string id)
        {
            Identifier_Trad identifier = new Identifier_Trad();
            Ambit_Trad      amb        = this;

            if (amb.Variables.ContainsKey(id))
            {
                identifier = amb.Variables[id];
            }
            return(identifier);
        }
예제 #8
0
        public Function_Trad getFunction(string id)
        {
            Ambit_Trad amb = this;

            while (amb != null)
            {
                if (amb.Variables.ContainsKey(id))
                {
                    return(amb.Functions[id]);
                }
                amb = amb.anterior;
            }
            return(null);
        }
예제 #9
0
        public void setArray(string id, Arrays_Trad tipo_dato)
        {
            Ambit_Trad env = this;

            while (env != null)
            {
                if (env.Arrays.ContainsKey(id.ToLower()))
                {
                    env.Arrays[id.ToLower()] = tipo_dato;
                    return;
                }
                env = env.anterior;
            }
        }
예제 #10
0
        public void setFunction(string id, Function_Trad function)
        {
            Ambit_Trad env = this;

            while (env != null)
            {
                if (env.Functions.ContainsKey(id))
                {
                    env.Functions[id] = function;
                    return;
                }
                env = env.anterior;
            }
        }
예제 #11
0
        public void setVariable(string id, string valor, string type, string tipo_dato)
        {
            Ambit_Trad env = this;

            while (env != null)
            {
                if (env.Variables.ContainsKey(id))
                {
                    env.Variables[id] = new Identifier_Trad(valor, id, type, tipo_dato);
                    return;
                }
                env = env.anterior;
            }
        }
예제 #12
0
        public Identifier_Trad getVariable(string id)
        {
            Identifier_Trad identifier = new Identifier_Trad();
            Ambit_Trad      amb        = this;

            while (amb != null)
            {
                if (amb.Variables.ContainsKey(id))
                {
                    identifier = amb.Variables[id];
                    break;
                }
                amb = amb.anterior;
            }
            return(identifier);
        }
예제 #13
0
        public void save(string id, string valor, string type, string tipo_dato)
        {
            Ambit_Trad amb = this;

            if (!amb.Ambit_name_inmediato.Equals("Function"))
            {
                if (!amb.variables.ContainsKey(id))
                {
                    amb.variables[id] = (new Identifier_Trad(valor, id, type, tipo_dato));
                }
            }
            else
            {
                saveVarFunction(id, valor, type);
            }
        }
예제 #14
0
        public Arrays_Trad getArray(string id)
        {
            Ambit_Trad amb = this;

            while (amb != null)
            {
                if (amb.Arrays.ContainsKey(id.ToLower()))
                {
                    return(amb.Arrays[id.ToLower()]);
                }
                amb = amb.anterior;
            }


            return(null);
        }