using System; using System.Collections; namespace TreeConverter { public abstract class scope : base_scope { private Hashtable ht=new Hashtable(); public string name_to_symtab(string name) { return name.ToLower(); } public void add_name(string name,SymbolInfo si) { name=name_to_symtab(name); object o=ht[name]; if (o==null) { SymbolInfoArrayList syal=new SymbolInfoArrayList(); syal.Add(si); ht[name]=syal; return; } else { /*if (si.symbol_kind==symbol_kind.sk_none) { throw new CompilerInternalError("Duplicate name definition"); }*/ SymbolInfoArrayList syal1=(SymbolInfoArrayList)o; syal1.Add(si); return; } } public virtual SymbolInfo find_only_in_namespace(string name) { name=name_to_symtab(name); object o=ht[name]; if (o==null) { return null; } SymbolInfoArrayList syal=(SymbolInfoArrayList)o; int i=1; while(i