class_docstr: A Chart for feature grammars.
  :see: ``Chart`` for more information.
class_docstr_tok: ["A","Chart","for","feature","grammars",".",":","see",":","``","Chart","``","for","more","information","."]
docstr: A helper function for ``insert``, which registers the new
  edge with all existing indexes.
docstr_tok: ["A","helper","function","for","``","insert","``",",","which","registers","the","new","edge","with","all","existing","indexes","."]
code: def _register_with_indexes(self, edge):
      """
      A helper function for ``insert``, which registers the new
      edge with all existing indexes.
      """
      for restr_keys, index in self._indexes.items():
          vals = tuple(
              self._get_type_if_possible(getattr(edge, key)())
              for key in restr_keys
          )
          index.setdefault(vals, []).append(edge)
  
imports: from time import perf_counter
  from nltk.featstruct import TYPE, FeatStruct, find_variables, unify
  from nltk.grammar import CFG, FeatStructNonterminal, Nonterminal, Production, is_nonterminal, is_terminal
  from nltk.parse.chart import BottomUpPredictCombineRule, BottomUpPredictRule, CachedTopDownPredictRule, Chart, ChartParser, EdgeI, EmptyPredictRule, FundamentalRule, LeafInitRule, SingleEdgeFundamentalRule, TopDownInitRule, TreeEdge
  from nltk.sem import logic
  from nltk.tree import Tree
label_desc: Use image node_id 3 for calling the FeatureChart obj's underlying member method code with example usage: obj._register_with_indexes(edge) without return types