Example #1
0
        private bool WalkIterators(Comprehension node)
        {
            if (node.Iterators != null) {
                foreach (ComprehensionIterator ci in node.Iterators) {
                    ci.Walk(this);
                }
            }

            return false;
        }
Example #2
0
 private ComprehensionScope MakeSetComprehensionScope(Comprehension node)
 {
     var unit = new SetComprehensionAnalysisUnit(node, _entry.Tree, _curUnit, _scope);
     unit.Enqueue();
     return (ComprehensionScope)unit.Scope;
 }
Example #3
0
 public ComprehensionScope(Namespace comprehensionResult, Comprehension comprehension, InterpreterScope outerScope)
     : base(comprehensionResult, comprehension, outerScope)
 {
 }
Example #4
0
        /// <summary>
        /// Makes sure we create a scope for a comprehension (generator, set, dict, or list comprehension in 3.x) where
        /// the variables which are assigned will be stored.  
        /// </summary>
        private void EnsureComprehensionScope(Comprehension node, Func<Comprehension, ComprehensionScope> makeScope)
        {
            InterpreterScope scope, declScope = _scope;
            if (!declScope.TryGetNodeScope(node, out scope)) {
                scope = makeScope(node);

                declScope.AddNodeScope(node, scope);
                declScope.Children.Add(scope);
            }
            _scope = scope;
        }