public Readtable() { Items = new ReadtableEntry[127]; for (var i = 0; i < Items.Length; ++i) { Items[i] = new ReadtableEntry(); } OtherItems = new Dictionary <char, ReadtableEntry>(); }
public ReadtableEntry Clone() { var dest = new ReadtableEntry(); dest.Character = Character; dest.Type = Type; dest.Handler = Handler; dest.Handler2 = Handler2; if (DispatchReadtable != null) { dest.DispatchReadtable = new SortedList <string, ReadtableHandler2>(); foreach (var pair in DispatchReadtable) { dest.DispatchReadtable.Add(pair.Key, pair.Value); } } return(dest); }
public ReadtableEntry GetEntry(char code, bool defining = false) { ReadtableEntry item; if (code < Items.Length) { return(Items[code]); } else if (OtherItems.TryGetValue(code, out item)) { return(item); } else if (defining) { item = new ReadtableEntry(); item.Character = code; OtherItems[code] = item; return(item); } else { return(DefaultItem); } }