code: def ParseCFlags(self, start_line=0):
      
      modname = None                      # name of current module
      modlist = []
      flag = None
      for line_num in range(start_line, len(self.output)):  # collect flags
        line = self.output[line_num].rstrip()
        if not line:                      # blank lines terminate flags
          if flag:                        # save last flag
            modlist.append(flag)
            flag = None
          continue
  
        mobj = self.module_c_re.match(line)
        if mobj:                          # start of a new module
          modname = mobj.group(1)
          logging.debug('Module: %s' % line)
          if flag:
            modlist.append(flag)
          self.module_list.append(modname)
          self.modules.setdefault(modname, [])
          modlist = self.modules[modname]
          flag = None
          continue
  
        mobj = self.flag_c_re.match(line)
        if mobj:                          # start of a new flag
          if flag:                        # save last flag
            modlist.append(flag)
          logging.debug('Flag: %s' % line)
          flag = Flag(mobj.group(1),  mobj.group(2))
          continue
  
        # append to flag help.  type and default are part of the main text
        if flag:
          flag.help += ' ' + line.strip()
        else:
          logging.info('Extra: %s' % line)
      if flag:
        modlist.append(flag)
docs: Parse C style flags.