def parse_config_h(fp, vars=None):
 if (vars is None):
  vars = {}
 import re
 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

def parse_config_h ( fp , vars = None ) : if ( vars is None ) : vars = { } import re 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
parse a config .