void IDecisionVisitor.Visit(JumpTableDecision decision) { emit .Label(GetNodeLabel(decision).Def) .Do(ldvalue) ; if (decision.StartElement != 0) { emit .Ldc_I4(decision.StartElement) .Sub(); } emit .Switch(decision.ElementToAction.Select(GetNodeLabel).ToArray()); // default case: GenerateCodeOrJump(builder.DefaultActionDecision); foreach (var leaf in decision.LeafDecisions) { strategy.PlanCode(leaf); } strategy.IntermediateGenerateCode(); }