示例#1
0
            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;
                    }
                }
            }
示例#2
0
            public override bool Equals(object obj)
            {
                WOrC r2 = obj as WOrC;

                if (r2 == null)
                {
                    return(false);
                }
                return(this == r2);
            }
示例#3
0
        public Expr Translate(WOrC c)
        {
            Expr e;

            if (_cToHead.TryGetValue(c, out e))
            {
                return(e.Clone());
            }
            else
            {
                return(null);
            }
        }
示例#4
0
 public WellKnownSym this[WOrC c]
 {
     get
     {
         WKSID id;
         if (_mapc.TryGetValue(c, out id))
         {
             return(new WellKnownSym(id));
         }
         else
         {
             return(null);
         }
     }
 }
示例#5
0
 public WOrC(WOrC r)
 {
     _character = r._character;
     _word = r._word;
 }
示例#6
0
 public OpExprOrType(WOrC op)
 {
     _op = op; _which = which.Op;
 }
示例#7
0
 public CharWKSOrT(TType t)
 {
     C = null; WKS = null; T = t;
 }
示例#8
0
 public CharWKSOrT(WKSID wks)
 {
     C = null; WKS = wks; T = null;
 }
示例#9
0
 public CharWKSOrT(WOrC c)
 {
     C = c; WKS = null; T = null;
 }
示例#10
0
 public WellKnownSym this[WOrC c]
 {
     get
     {
         WKSID id;
         if (_mapc.TryGetValue(c, out id)) return new WellKnownSym(id);
         else return null;
     }
 }
示例#11
0
 public Expr Translate(WOrC c)
 {
     Expr e;
     if (_cToHead.TryGetValue(c, out e)) return e.Clone();
     else return null;
 }
示例#12
0
 public CharWKSOrT(TType t)
 {
     C = null; WKS = null; T = t;
 }
示例#13
0
 public CharWKSOrT(WKSID wks)
 {
     C = null; WKS = wks; T = null;
 }
示例#14
0
 public CharWKSOrT(WOrC c)
 {
     C = c; WKS = null; T = null;
 }
示例#15
0
 public OpExprOrType(WOrC op)
 {
     _op = op; _which = which.Op;
 }
示例#16
0
 public WOrC(WOrC r)
 {
     _character = r._character;
     _word      = r._word;
 }