code: def handle_stmt(self, stmt, p_elem, pset={}):
          
          if self.debug > 0:
              sys.stderr.write("Handling '%s %s'\n" %
                               (util.keyword_to_str(stmt.raw_keyword), stmt.arg))
          try:
              method = self.stmt_handler[stmt.keyword]
          except KeyError:
              if isinstance(stmt.keyword, tuple):
                  try:
                      method = self.ext_handler[stmt.keyword[0]][stmt.keyword[1]]
                  except KeyError:
                      method = self.rng_annotation
                  method(stmt, p_elem)
                  return
              else:
                  raise error.EmitError(
                      "Unknown keyword %s - this should not happen.\n"
                      % stmt.keyword)
          method(stmt, p_elem, pset)
docs: Run handler method for statement `stmt`.
  
          `p_elem` is the parent node in the output schema. `pset` is
          the current "patch set" - a dictionary with keys being QNames
          of schema nodes at the current level of hierarchy for which
          (or descendants thereof) any pending patches exist. The values
          are instances of the Patch class.
  
          All handler methods are defined below and must have the same
          arguments as this method. They should create the output schema
          fragment corresponding to `stmt`, apply all patches from
          `pset` belonging to `stmt`, insert the fragment under `p_elem`
          and perform all side effects as necessary.