CodeGen.CompareExp C# (CSharp) Method

CompareExp() public method

public CompareExp ( CompareExp e ) : void
e Absyn.CompareExp
return void
    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);
	
    }