public override void VisitAnd(AndExpression and)
{
Label falseLabel = ilGenerator.DefineLabel();
Label endLabel = ilGenerator.DefineLabel();
and.Left.Accept(this);
ilGenerator.Emit(OpCodes.Brfalse, falseLabel);
and.Right.Accept(this);
ilGenerator.Emit(OpCodes.Br, endLabel);
ilGenerator.MarkLabel(falseLabel);
ilGenerator.Emit(OpCodes.Ldc_I4_0);
ilGenerator.MarkLabel(endLabel);
}