Пример #1
0
        public VariableNameTableItem FindVariable(string name)
        {
            VariableNameTableItem res = null;

            // find in this scope
            if (Names.ContainsKey(name))
            {
                res = Names[name];
            }
            else
            {
                // search in outer scopes
                var outer = Outer;
                while (outer != null)
                {
                    if (outer.Names.ContainsKey(name))
                    {
                        res = outer.Names[name];
                        break;
                    }

                    outer = outer.Outer;
                }
            }
            return(res);
        }
Пример #2
0
 public void PutVariable(VariableNameTableItem item)
 {
     // присвоение без проверок, очень зависит от контекста
     Names.Add(item.Name, item);
 }