Beispiel #1
0
 public override void Walk(PythonWalker walker)
 {
     if (walker.Walk(this))
     {
         if (_body != null)
         {
             _body.Walk(walker);
         }
     }
     walker.PostWalk(this);
 }
Beispiel #2
0
 public override void Walk(PythonWalker walker)
 {
     if (walker.Walk(this))
     {
         NameExpression?.Walk(walker);
         foreach (var p in _parameters.MaybeEnumerate())
         {
             p.Walk(walker);
         }
         Decorators?.Walk(walker);
         _body?.Walk(walker);
         ReturnAnnotation?.Walk(walker);
     }
     walker.PostWalk(this);
 }
Beispiel #3
0
        public override void Walk(PythonWalker walker)
        {
            if (walker.Walk(this))
            {
                foreach (var item in _items)
                {
                    item.Walk(walker);
                }

                if (_body != null)
                {
                    _body.Walk(walker);
                }
            }
            walker.PostWalk(this);
        }
Beispiel #4
0
        public override void Walk(PythonWalker walker)
        {
            if (walker.Walk(this))
            {
                if (_tests != null)
                {
                    foreach (IfStatementTest test in _tests)
                    {
                        test.Walk(walker);
                    }
                }

                _else?.Walk(walker);
            }
            walker.PostWalk(this);
        }
Beispiel #5
0
 public override void Walk(PythonWalker walker)
 {
     if (walker.Walk(this))
     {
         if (_parameters != null)
         {
             foreach (Parameter p in _parameters)
             {
                 p.Walk(walker);
             }
         }
         if (_decorators != null)
         {
             _decorators.Walk(walker);
         }
         if (_body != null)
         {
             _body.Walk(walker);
         }
     }
     walker.PostWalk(this);
 }
 public override void Walk(PythonWalker walker)
 {
     if (walker.Walk(this))
     {
         if (_decorators != null)
         {
             _decorators.Walk(walker);
         }
         if (_bases != null)
         {
             foreach (var b in _bases)
             {
                 b.Walk(walker);
             }
         }
         if (_body != null)
         {
             _body.Walk(walker);
         }
     }
     walker.PostWalk(this);
 }
Beispiel #7
0
 public override void Walk(PythonWalker walker)
 {
     if (walker.Walk(this))
     {
         if (_left != null)
         {
             _left.Walk(walker);
         }
         if (_list != null)
         {
             _list.Walk(walker);
         }
         if (_body != null)
         {
             _body.Walk(walker);
         }
         if (_else != null)
         {
             _else.Walk(walker);
         }
     }
     walker.PostWalk(this);
 }
        private bool IsCoroutine(Statement body) {
            if (_ast.LanguageVersion < PythonLanguageVersion.V35) {
                return false;
            }

            var walker = new AwaitWalker();
            body.Walk(walker);
            return walker.SeenAwait;
        }
Beispiel #9
0
            private void WalkLoop(Statement body, Statement elseStmt) {
                bool allReturn = true;

                _raises = Returns = false;
                body.Walk(this);

                allReturn &= Returns || _raises;

                if (elseStmt != null) {
                    _raises = _raises = false;
                    elseStmt.Walk(this);
                    allReturn &= Returns || _raises;
                }

                Returns = allReturn;
            }