parameters: (fp, vars=None)
return_statement: return vars
docstring: Parse a config.h-style file.
  
      A dictionary containing name/value pairs is returned.  If an
      optional dictionary is passed in as the second argument, it is
      used instead of a new dictionary.
docstring_summary: Parse a config.h-style file.
docstring_tokens: Parse a config . h - style file .
function: def parse_config_h(fp, vars=None):
      """Parse a config.h-style file.
  
      A dictionary containing name/value pairs is returned.  If an
      optional dictionary is passed in as the second argument, it is
      used instead of a new dictionary.
      """
      import re
      if vars is None:
          vars = {}
      define_rx = re.compile("#define ([A-Z][A-Za-z0-9_]+) (.*)\n")
      undef_rx = re.compile("/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/\n")
  
      while True:
          line = fp.readline()
          if not line:
              break
          m = define_rx.match(line)
          if m:
              n, v = m.group(1, 2)
              try: v = int(v)
              except ValueError: pass
              vars[n] = v
          else:
              m = undef_rx.match(line)
              if m:
                  vars[m.group(1)] = 0
      return vars
function_tokens: def parse_config_h ( fp , vars = None ) : import re if vars is None : vars = { } define_rx = re . compile ( "#define ([A-Z][A-Za-z0-9_]+) (.*)\n" ) undef_rx = re . compile ( "/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/\n" ) while True : line = fp . readline ( ) if not line : break m = define_rx . match ( line ) if m : n , v = m . group ( 1 , 2 ) try : v = int ( v ) except ValueError : pass vars [ n ] = v else : m = undef_rx . match ( line ) if m : vars [ m . group ( 1 ) ] = 0 return vars