예제 #1
0
        public static SCode Make(Primitive2 rator, PrimitiveCarA0 rand0, Quotation rand1)
        {
            #if DEBUG
            if (rand1.Quoted == null)
                Debugger.Break ();
            #endif

            return
                               (rand1.Quoted == null &&
                Configuration.EnableCodeRewriting &&
                Configuration.EnableEqNullRewrite) ? RewriteEqNull (rator, rand0, rand1) :
                (rand1.Quoted is bool &&
                ((bool) rand1.Quoted) == false &&
                Configuration.EnableCodeRewriting &&
                Configuration.EnableEqFalseRewrite) ? RewriteEqFalse (rator, rand0, rand1) :
                new PrimitiveIsEqCarA0Q (rator, rand0, rand1);
        }
예제 #2
0
 public static SCode Make(Primitive2 rator, PrimitiveCarA0 rand0, PrimitiveCarS rand1)
 {
     return
         new PrimitiveIsEqCarA0CarS (rator, rand0, rand1);
 }
예제 #3
0
 protected PrimitiveIsEqCarA0Q(Primitive2 rator, PrimitiveCarA0 rand0, Quotation rand1)
     : base(rator, rand0, rand1)
 {
     this.rand1Value = rand1.Quoted;
 }
예제 #4
0
 protected PrimitiveIsEqCarA0CarA(Primitive2 rator, PrimitiveCarA0 rand0, PrimitiveCarA rand1)
     : base(rator, rand0, rand1)
 {
     this.rand1Offset = rand1.offset;
 }
예제 #5
0
 protected PrimitiveIsEqCarA0CarS(Primitive2 rator, PrimitiveCarA0 rand0, PrimitiveCarS rand1)
     : base(rator, rand0, rand1)
 {
     this.rand1Name = rand1.name;
     this.rand1Offset = rand1.offset;
 }
예제 #6
0
 public static SCode Make(StaticVariable rator, PrimitiveCarA0 rand0, SCode rand1)
 {
     return
         (rand1 is PrimitiveCar) ? Combination2SCarA0Car.Make (rator, rand0, (PrimitiveCar) rand1) :
         (rand1 is StaticVariable) ? Combination2SCarA0S.Make (rator, rand0, (StaticVariable) rand1) :
         new Combination2SCarA0 (rator, rand0, rand1);
 }
예제 #7
0
 public static SCode Make(Primitive2 rator, PrimitiveCarA0 rand0, PrimitiveCar rand1)
 {
     return
         (rand1 is PrimitiveCarA) ? PrimitiveIsEqCarA0CarA.Make (rator, rand0, (PrimitiveCarA) rand1) :
         (rand1 is PrimitiveCarS) ? PrimitiveIsEqCarA0CarS.Make (rator, rand0, (PrimitiveCarS) rand1) :
         new PrimitiveIsEqCarA0Car (rator, rand0, rand1);
 }
예제 #8
0
 protected PrimitiveIsEqCarA0(Primitive2 rator, PrimitiveCarA0 rand0, SCode rand1)
     : base(rator, rand0, rand1)
 {
 }
예제 #9
0
 public static SCode Make(Primitive2 rator, PrimitiveCarA0 rand0, SCode rand1)
 {
     return
         (rand1 is PrimitiveCar) ? PrimitiveIsEqCarA0Car.Make (rator, rand0, (PrimitiveCar) rand1) :
         (rand1 is StaticVariable) ? PrimitiveIsEqCarA0S.Make (rator, rand0, (StaticVariable) rand1) :
         (rand1 is Quotation) ? PrimitiveIsEqCarA0Q.Make (rator, rand0, (Quotation) rand1) :
         new PrimitiveIsEqCarA0 (rator, rand0, rand1);
 }
예제 #10
0
 protected Combination2SCarA0S(StaticVariable rator, PrimitiveCarA0 rand0, StaticVariable rand1)
     : base(rator, rand0, rand1)
 {
     this.rand1Name = rand1.Name;
     this.rand1Offset = rand1.Offset;
 }
예제 #11
0
 public static SCode Make(StaticVariable rator, PrimitiveCarA0 rand0, StaticVariable rand1)
 {
     return
         new Combination2SCarA0S (rator, rand0, rand1);
 }
예제 #12
0
 protected Combination2SCarA0CarA(StaticVariable rator, PrimitiveCarA0 rand0, PrimitiveCar rand1)
     : base(rator, rand0, rand1)
 {
     rand1InnerOffset = ((Argument) rand1.Operand).Offset;
 }
예제 #13
0
 public static SCode Make(StaticVariable rator, PrimitiveCarA0 rand0, PrimitiveCar rand1)
 {
     return
         (rand1.Operand is Argument) ? Combination2SCarA0CarA.Make (rator, rand0, rand1) :
         new Combination2SCarA0Car (rator, rand0, rand1);
 }
예제 #14
0
 protected Combination2SCarA0Car(StaticVariable rator, PrimitiveCarA0 rand0, PrimitiveCar rand1)
     : base(rator, rand0, rand1)
 {
     rand1Inner = rand1.Operand;
 }
예제 #15
0
 protected PrimitiveIsEqCarA0S(Primitive2 rator, PrimitiveCarA0 rand0, StaticVariable rand1)
     : base(rator, rand0, rand1)
 {
     this.rand1Name = rand1.Name;
     this.rand1Offset = rand1.Offset;
 }
예제 #16
0
 protected PrimitiveIsEqCarA0Car(Primitive2 rator, PrimitiveCarA0 rand0, PrimitiveCar rand1)
     : base(rator, rand0, rand1)
 {
     this.rand1Arg = rand1.Operand;
     #if DEBUG
     this.rand1ArgType = rand1.Operand.GetType ();
     #endif
 }
예제 #17
0
 public static SCode Make(Primitive2 rator, PrimitiveCarA0 rand0, StaticVariable rand1)
 {
     return
         new PrimitiveIsEqCarA0S (rator, rand0, rand1);
 }
예제 #18
0
 protected Combination2SCarA0(StaticVariable rator, PrimitiveCarA0 rand0, SCode rand1)
     : base(rator, rand0, rand1)
 {
 }