docstr: Returns a generator which visits all nodes in expression tree in
  breadth-first search (BFS) traversal order.
  
  Returns:
      the generator object.
docstr_tok: ["Returns","a","generator","which","visits","all","nodes","in","expression","tree","in","breadth-first","search","(","BFS",")","traversal","order",".","Returns",":","the","generator","object","."]
code: def bfs(self):
      """Returns a generator which visits all nodes in expression tree in
      breadth-first search (BFS) traversal order.
  
      Returns:
          the generator object.
      """
      queue = deque([self])
      while queue:
          node = queue.popleft()
          yield node
          for child in node.children:
              queue.append(child)
  
imports: from abc import ABC, abstractmethod
  from collections import deque
  from copy import deepcopy
  from enum import IntEnum, auto, unique
  from typing import Any
label_desc: Use image node_id 15 for calling the AbstractExpression obj's underlying member method code with example usage: obj.bfs() without return types