public void CompareExp(CompareExp e)
{
Label TrueLabel = il.DefineLabel();
Label EndLabel = il.DefineLabel();
e.Left.Visit(this);
e.Right.Visit(this);
switch(e.Oper){
case Operator.LT:
il.Emit(OpCodes.Blt, TrueLabel);
break;
case Operator.GT:
il.Emit(OpCodes.Bgt, TrueLabel);
break;
case Operator.EQ:
il.Emit(OpCodes.Beq, TrueLabel);
break;
case Operator.LE:
il.Emit(OpCodes.Ble, TrueLabel);
break;
case Operator.GE:
il.Emit(OpCodes.Bge, TrueLabel);
break;
}
il.Emit(OpCodes.Ldc_I4_0);
il.Emit(OpCodes.Br, EndLabel);
il.MarkLabel(TrueLabel);
il.Emit(OpCodes.Ldc_I4_1);
il.MarkLabel(EndLabel);
}