code: def load_grammar(gt="Grammar.txt", gp=None,
                   save=True, force=False, logger=None):
      
      if logger is None:
          logger = logging.getLogger()
      if gp is None:
          head, tail = os.path.splitext(gt)
          if tail == ".txt":
              tail = ""
          gp = head + tail + ".".join(map(str, sys.version_info)) + ".pickle"
      if force or not _newer(gp, gt):
          logger.info("Generating grammar tables from %s", gt)
          g = pgen.generate_grammar(gt)
          if save:
              logger.info("Writing grammar tables to %s", gp)
              try:
                  g.dump(gp)
              except IOError, e:
                  logger.info("Writing failed:"+str(e))
      else:
          g = grammar.Grammar()
          g.load(gp)
      return g
docs: Load the grammar (maybe from a pickle).