public void IntExp(IntExp e)
{
switch(e.Value){
case 0:
il.Emit(OpCodes.Ldc_I4_0);
break;
case 1:
il.Emit(OpCodes.Ldc_I4_1);
break;
case 2:
il.Emit(OpCodes.Ldc_I4_2);
break;
case 3:
il.Emit(OpCodes.Ldc_I4_3);
break;
case 4:
il.Emit(OpCodes.Ldc_I4_4);
break;
case 5:
il.Emit(OpCodes.Ldc_I4_5);
break;
case 6:
il.Emit(OpCodes.Ldc_I4_6);
break;
case 7:
il.Emit(OpCodes.Ldc_I4_7);
break;
case 8:
il.Emit(OpCodes.Ldc_I4_8);
break;
default:
if (e.Value > -128 && e.Value < 127)
il.Emit(OpCodes.Ldc_I4_S, (byte)e.Value);
else if (e.Value > Int32.MinValue && e.Value < Int32.MaxValue)
il.Emit(OpCodes.Ldc_I4, (int)e.Value);
else
il.Emit(OpCodes.Ldc_I8, e.Value);
break;
}
}