old_contents: #
  # cpp_enum_parser.py
  #
  # Posted by Mark Tolenen on comp.lang.python in August, 2009,
  # Used with permission.
  # 
  # Parser that scans through C or C++ code for enum definitions, and
  # generates corresponding Python constant definitions.
  #
  #
  
  from pyparsing import *
  # sample string with enums and other stuff
  sample = '''
      stuff before
      enum hello {
          Zero,
          One,
          Two,
          Three,
          Five=5,
          Six,
          Ten=10
          };
      in the middle
      enum blah
          {
          alpha,
          beta,
          gamma = 10 ,
          zeta = 50
          };
      at the end
      '''
  
  # syntax we don't want to see in the final parse tree
  LBRACE,RBRACE,EQ,COMMA = map(Suppress,"{}=,")
  _enum = Suppress('enum')
  identifier = Word(alphas,alphanums+'_')
  integer = Word(nums)
  enumValue = Group(identifier('name') + Optional(EQ + integer('value')))
  enumList = Group(enumValue + ZeroOrMore(COMMA + enumValue))
  enum = _enum + identifier('enum') + LBRACE + enumList('names') + RBRACE
  
  # find instances of enums ignoring other syntax
  for item,start,stop in enum.scanString(sample):
      id = 0
      for entry in item.names:
          if entry.value != '':
              id = int(entry.value)
          print('%s_%s = %d' % (item.enum.upper(),entry.name.upper(),id))
          id += 1
  
new_contents: #
  # cpp_enum_parser.py
  #
  # Posted by Mark Tolonen on comp.lang.python in August, 2009,
  # Used with permission.
  # 
  # Parser that scans through C or C++ code for enum definitions, and
  # generates corresponding Python constant definitions.
  #
  #
  
  from pyparsing import *
  # sample string with enums and other stuff
  sample = '''
      stuff before
      enum hello {
          Zero,
          One,
          Two,
          Three,
          Five=5,
          Six,
          Ten=10
          };
      in the middle
      enum blah
          {
          alpha,
          beta,
          gamma = 10 ,
          zeta = 50
          };
      at the end
      '''
  
  # syntax we don't want to see in the final parse tree
  LBRACE,RBRACE,EQ,COMMA = map(Suppress,"{}=,")
  _enum = Suppress('enum')
  identifier = Word(alphas,alphanums+'_')
  integer = Word(nums)
  enumValue = Group(identifier('name') + Optional(EQ + integer('value')))
  enumList = Group(enumValue + ZeroOrMore(COMMA + enumValue))
  enum = _enum + identifier('enum') + LBRACE + enumList('names') + RBRACE
  
  # find instances of enums ignoring other syntax
  for item,start,stop in enum.scanString(sample):
      id = 0
      for entry in item.names:
          if entry.value != '':
              id = int(entry.value)
          print('%s_%s = %d' % (item.enum.upper(),entry.name.upper(),id))
          id += 1
  
subject: Fix spelling on contributor's name