public sealed override void Generate(ScriptCompiler.Context context) { GenerateBlockBefore(context); context.InidicateLabel(BeginLabel); GenerateBlockBegin(context); foreach (Statement item in statements) { context.Generate(item); } GenerateBlockEnd(context); context.InidicateLabel(EndLabel); GenerateBlockAfter(context); }
protected override void GenerateBlockEnd(ScriptCompiler.Context context) { if (Else != null) { context.Jump(EndLabel); context.InidicateLabel(ElseLabel); context.Generate(Else); } }
protected override void GenerateBlockBegin(ScriptCompiler.Context context) { context.InidicateLabel(LoopLabel); context.IfFalseThenJump(Condition, EndLabel); }