parameters: (node, node_cb)
docstring: Generator that traverses the tree structure and iterates over all
    runnables.
docstring_summary: Generator that traverses the tree structure and iterates over all
    runnables.
docstring_tokens: Generator that traverses the tree structure and iterates over all runnables .
function: def FlattenRunnables(node, node_cb):
    """Generator that traverses the tree structure and iterates over all
    runnables.
    """
    node_cb(node)
    if isinstance(node, RunnableConfig):
      yield node
    elif isinstance(node, Node):
      for child in node._children:
        for result in FlattenRunnables(child, node_cb):
          yield result
    else:  # pragma: no cover
      raise Exception("Invalid suite configuration.")
function_tokens: def FlattenRunnables ( node , node_cb ) : node_cb ( node ) if isinstance ( node , RunnableConfig ) : yield node elif isinstance ( node , Node ) : for child in node . _children : for result in FlattenRunnables ( child , node_cb ) : yield result else : # pragma: no cover raise Exception ( "Invalid suite configuration." )