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;
 }
Beispiel #2
0
        protected internal override void PostWalk(GeneratorCodeBlock node)
        {
            int temps = node.BuildYieldTargets();

            AddGeneratorTemps(temps);
            ProcessAndPop(node);
        }
Beispiel #3
0
 // GeneratorCodeBlock
 private void DefaultWalk(GeneratorCodeBlock node)
 {
     if (Walk(node))
     {
         WalkNode(node.Body);
     }
     PostWalk(node);
 }
Beispiel #4
0
        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;
        }
Beispiel #5
0
 protected internal override bool Walk(GeneratorCodeBlock node)
 {
     Push(node);
     return(true);
 }
Beispiel #6
0
 protected internal override void PostWalk(GeneratorCodeBlock node)
 {
     int temps = node.BuildYieldTargets();
     AddGeneratorTemps(temps);
     ProcessAndPop(node);
 }
Beispiel #7
0
 protected internal override bool Walk(GeneratorCodeBlock node)
 {
     Push(node);
     return true;
 }
Beispiel #8
0
 // GeneratorCodeBlock
 protected internal override bool Walk(GeneratorCodeBlock node)
 {
     return Walk((CodeBlock)node);
 }
Beispiel #9
0
 // GeneratorCodeBlock
 protected internal override bool Walk(GeneratorCodeBlock node)
 {
     return(Walk((CodeBlock)node));
 }
Beispiel #10
0
 // GeneratorCodeBlock
 private void DefaultWalk(GeneratorCodeBlock node)
 {
     if (Walk(node)) {
         WalkNode(node.Body);
     }
     PostWalk(node);
 }
Beispiel #11
0
 // GeneratorCodeBlock
 private void Dump(GeneratorCodeBlock node)
 {
     Out(".generator", Flow.Space);
     DumpBlock(node);
 }