public override void VisitLoop(LoopStatement loop)
{
LoopStatement prevLoop = currentLoop;
currentLoop = loop;
Label beginLabel = ilGenerator.DefineLabel();
loop.EndLabel = ilGenerator.DefineLabel();
ilGenerator.MarkLabel(beginLabel);
loop.StatementList.Accept(this);
ilGenerator.Emit(OpCodes.Br, beginLabel);
ilGenerator.MarkLabel(loop.EndLabel);
currentLoop = prevLoop;
}