code: def children_asts(self):
          
          ast_queue = deque([iter(self.args)])
          while ast_queue:
  
              try:
                  ast = next(ast_queue[-1])
              except StopIteration:
                  ast_queue.pop()
                  continue
  
              if isinstance(ast, Base):
                  ast_queue.append(iter(ast.args))
  
                  l.debug("Yielding AST %s with hash %s with %d children", ast, hash(ast), len(ast.args))
                  yield ast
docs: Return an iterator over the nested children ASTs.