internal static void BuildYieldTargets(GeneratorCodeBlock g, out List<YieldTarget> topTargets, out int temps) { YieldLabelBuilder b = new YieldLabelBuilder(); b.WalkNode(g.Body); topTargets = b._topTargets; temps = b._temps; }
protected internal override void PostWalk(GeneratorCodeBlock node) { int temps = node.BuildYieldTargets(); AddGeneratorTemps(temps); ProcessAndPop(node); }
// GeneratorCodeBlock private void DefaultWalk(GeneratorCodeBlock node) { if (Walk(node)) { WalkNode(node.Body); } PostWalk(node); }
internal static void BuildYieldTargets(GeneratorCodeBlock g, out List <YieldTarget> topTargets, out int temps) { YieldLabelBuilder b = new YieldLabelBuilder(); b.WalkNode(g.Body); topTargets = b._topTargets; temps = b._temps; }
protected internal override bool Walk(GeneratorCodeBlock node) { Push(node); return(true); }
protected internal override bool Walk(GeneratorCodeBlock node) { Push(node); return true; }
// GeneratorCodeBlock protected internal override bool Walk(GeneratorCodeBlock node) { return Walk((CodeBlock)node); }
// GeneratorCodeBlock protected internal override bool Walk(GeneratorCodeBlock node) { return(Walk((CodeBlock)node)); }
// GeneratorCodeBlock private void Dump(GeneratorCodeBlock node) { Out(".generator", Flow.Space); DumpBlock(node); }