public CharWKSMapper(params CharWKSOrT[] cows) { WOrC c = (char)0; TType t = TType.Ord; foreach (CharWKSOrT cow in cows) { if (cow.C != null) { Trace.Assert(c == (char)0); c = cow.C; t = TType.Ord; } else if (cow.T.HasValue) { Trace.Assert(c != (char)0); t = cow.T.Value; } else { Trace.Assert(c != (char)0); _mapc[c] = cow.WKS.Value; _mapw[cow.WKS.Value] = new KeyValuePair <WOrC, TType>(c, t); c = (char)0; t = TType.Ord; } } }
public override bool Equals(object obj) { WOrC r2 = obj as WOrC; if (r2 == null) { return(false); } return(this == r2); }
public Expr Translate(WOrC c) { Expr e; if (_cToHead.TryGetValue(c, out e)) { return(e.Clone()); } else { return(null); } }
public WellKnownSym this[WOrC c] { get { WKSID id; if (_mapc.TryGetValue(c, out id)) { return(new WellKnownSym(id)); } else { return(null); } } }
public WOrC(WOrC r) { _character = r._character; _word = r._word; }
public OpExprOrType(WOrC op) { _op = op; _which = which.Op; }
public CharWKSOrT(TType t) { C = null; WKS = null; T = t; }
public CharWKSOrT(WKSID wks) { C = null; WKS = wks; T = null; }
public CharWKSOrT(WOrC c) { C = c; WKS = null; T = null; }
public WellKnownSym this[WOrC c] { get { WKSID id; if (_mapc.TryGetValue(c, out id)) return new WellKnownSym(id); else return null; } }
public Expr Translate(WOrC c) { Expr e; if (_cToHead.TryGetValue(c, out e)) return e.Clone(); else return null; }