class_docstr: The main matcher class. After instantiating the patterns should
  be added using the add_fixer method
docstr: Prints a graphviz diagram of the BM automaton(for debugging)
docstr_tok: ["Prints","a","graphviz","diagram","of","the","BM","automaton","(","for","debugging",")"]
code: def print_ac(self):
      "Prints a graphviz diagram of the BM automaton(for debugging)"
      print("digraph g{")
  
      def print_node(node):
          for subnode_key in node.transition_table.keys():
              subnode = node.transition_table[subnode_key]
              print(
                  "%d -> %d [label=%s] //%s"
                  % (
                      node.id,
                      subnode.id,
                      type_repr(subnode_key),
                      str(subnode.fixers),
                  )
              )
              if subnode_key == 1:
                  print(subnode.content)
              print_node(subnode)
  
      print_node(self.root)
      print("}")
  
file_path: catboost/contrib/tools/python/src/Lib/lib2to3/btm_matcher.py
imports: import logging
  import itertools
  from collections import defaultdict
  from .None import pytree
  from .btm_utils import reduce_tree
label_desc: Use image node_id 5 for calling the BottomMatcher obj's underlying member method code with example usage: obj.print_ac() without return types