예제 #1
0
 public void EmitIR(CILEmitter Emitter, bool Reference)
 {
     if (Reference)
     {
         throw new InvalidByReferenceException();
     }
     Emitter.PushInt32(literal);
 }
예제 #2
0
        public void EmitIR(CILEmitter Emitter, bool Reference)
        {
            if (Reference)
            {
                throw new InvalidByReferenceException();
            }
            int booleanValue = literal ? 1 : 0;

            Emitter.PushInt32(booleanValue);
        }
예제 #3
0
 protected override void LoadFirst(CILEmitter Emitter, bool Reference)
 {
     base.LoadFirst(Emitter, Reference);
     if (sign == OperatorType.Substraction)
     {
         if (Type.Equals(MiniPascalType.Integer))
         {
             Emitter.PushInt32(-1);
         }
         else if (Type.Equals(MiniPascalType.Real))
         {
             Emitter.PushSingle(-1f);
         }
         Emitter.Multiply();
         return;
     }
 }
예제 #4
0
 public void EmitIR(CILEmitter Emitter)
 {
     Emitter.CallStringEquals();
     Emitter.PushInt32(0);
     Emitter.Equals();
 }
예제 #5
0
 public void EmitIR(CILEmitter Emitter)
 {
     Emitter.GreaterThan();
     Emitter.PushInt32(0);
     Emitter.Equals();
 }