old_contents: #! /usr/bin/env python3
  #  (Force the script to use the latest build.)
  #
  #  test_parser.py
  
  import parser, traceback
  
  _numFailed = 0
  
  def testChunk(t, fileName):
      global _numFailed
      print('----', fileName, end=' ')
      try:
          ast = parser.suite(t)
          tup = parser.ast2tuple(ast)
          # this discards the first AST; a huge memory savings when running
          # against a large source file like Tkinter.py.
          ast = None
          new = parser.tuple2ast(tup)
      except parser.ParserError as err:
          print()
          print('parser module raised exception on input file', fileName + ':')
          traceback.print_exc()
          _numFailed = _numFailed + 1
      else:
          if tup != parser.ast2tuple(new):
              print()
              print('parser module failed on input file', fileName)
              _numFailed = _numFailed + 1
          else:
              print('o.k.')
  
  def testFile(fileName):
      t = open(fileName).read()
      testChunk(t, fileName)
  
  def test():
      import sys
      args = sys.argv[1:]
      if not args:
          import glob
          args = glob.glob("*.py")
          args.sort()
      list(map(testFile, args))
      sys.exit(_numFailed != 0)
  
  if __name__ == '__main__':
      test()
  
new_contents: #! /usr/bin/env python3
  #  (Force the script to use the latest build.)
  #
  #  test_parser.py
  
  import parser, traceback
  
  _numFailed = 0
  
  def testChunk(t, fileName):
      global _numFailed
      print('----', fileName, end=' ')
      try:
          st = parser.suite(t)
          tup = parser.st2tuple(st)
          # this discards the first ST; a huge memory savings when running
          # against a large source file like Tkinter.py.
          st = None
          new = parser.tuple2st(tup)
      except parser.ParserError as err:
          print()
          print('parser module raised exception on input file', fileName + ':')
          traceback.print_exc()
          _numFailed = _numFailed + 1
      else:
          if tup != parser.st2tuple(new):
              print()
              print('parser module failed on input file', fileName)
              _numFailed = _numFailed + 1
          else:
              print('o.k.')
  
  def testFile(fileName):
      t = open(fileName).read()
      testChunk(t, fileName)
  
  def test():
      import sys
      args = sys.argv[1:]
      if not args:
          import glob
          args = glob.glob("*.py")
          args.sort()
      list(map(testFile, args))
      sys.exit(_numFailed != 0)
  
  if __name__ == '__main__':
      test()
  
subject: Make Demo/parser/test_parser.py run.