public override void VisitOr(OrExpression or)
{
Label trueLabel = ilGenerator.DefineLabel();
Label endLabel = ilGenerator.DefineLabel();
or.Left.Accept(this);
ilGenerator.Emit(OpCodes.Brtrue, trueLabel);
or.Right.Accept(this);
ilGenerator.Emit(OpCodes.Br, endLabel);
ilGenerator.MarkLabel(trueLabel);
ilGenerator.Emit(OpCodes.Ldc_I4_1);
ilGenerator.MarkLabel(endLabel);
}