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); }
public void PutVariable(VariableNameTableItem item) { // присвоение без проверок, очень зависит от контекста Names.Add(item.Name, item); }