예제 #1
0
        public override void Emit(InstructionWriter writer)
        {
            var restartLabel = new LabelStatementSyntaxNode();

            writer.MarkLabel(restartLabel);
            _cond.Emit(writer);

            _block.Emit(writer);

            writer.WriteUSx(OpCodes.JMP, 0, 0);
            writer.AddLabelFix(restartLabel, InstructionWriter.FixUSxJump);

            writer.MarkLabel(_exitLabel);
        }
예제 #2
0
 public override void Emit(InstructionWriter writer)
 {
     writer.MarkLabel(_repeatLabel);
     _block.Emit(writer);
     _cond.Emit(writer);
 }