parameters: (self, gen=None, genOpts=None)
docstring: Output generator used to write headers / messages
docstring_summary: Output generator used to write headers / messages
docstring_tokens: Output generator used to write headers / messages
function: def __init__(self, gen=None, genOpts=None):
          if gen is None:
              # If not specified, give a default object so messaging will work
              self.gen = OutputGenerator()
          else:
              self.gen = gen
          "Output generator used to write headers / messages"
  
          if genOpts is None:
              # If no generator is provided, we may still need the XML API name
              # (for example, in genRef.py).
              self.genOpts = GeneratorOptions(apiname = APIConventions().xml_api_name)
          else:
              self.genOpts = genOpts
          "Options controlling features to write and how to format them"
  
          self.gen.registry = self
          self.gen.genOpts = self.genOpts
          self.gen.genOpts.registry = self
  
          self.tree = None
          "ElementTree containing the root `<registry>`"
  
          self.typedict = {}
          "dictionary of TypeInfo objects keyed by type name"
  
          self.groupdict = {}
          "dictionary of GroupInfo objects keyed by group name"
  
          self.enumdict = {}
          "dictionary of EnumInfo objects keyed by enum name"
  
          self.cmddict = {}
          "dictionary of CmdInfo objects keyed by command name"
  
          self.apidict = {}
          "dictionary of FeatureInfo objects for `<feature>` elements keyed by API name"
  
          self.extensions = []
          "list of `<extension>` Elements"
  
          self.extdict = {}
          "dictionary of FeatureInfo objects for `<extension>` elements keyed by extension name"
  
          self.spirvextdict = {}
          "dictionary of FeatureInfo objects for `<spirvextension>` elements keyed by spirv extension name"
  
          self.spirvcapdict = {}
          "dictionary of FeatureInfo objects for `<spirvcapability>` elements keyed by spirv capability name"
  
          self.formatsdict = {}
          "dictionary of FeatureInfo objects for `<format>` elements keyed by VkFormat name"
  
          self.emitFeatures = False
          """True to actually emit features for a version / extension,
          or False to just treat them as emitted"""
  
          self.breakPat = None
          "regexp pattern to break on when generating names"
          # self.breakPat     = re.compile('VkFenceImportFlagBits.*')
  
          self.requiredextensions = []  # Hack - can remove it after validity generator goes away
  
          # ** Global types for automatic source generation **
          # Length Member data
          self.commandextensiontuple = namedtuple('commandextensiontuple',
                                                  ['command',        # The name of the command being modified
                                                   'value',          # The value to append to the command
                                                   'extension'])     # The name of the extension that added it
          self.validextensionstructs = defaultdict(list)
          self.commandextensionsuccesses = []
          self.commandextensionerrors = []
  
          self.filename     = None
function_tokens: def __init__ ( self , gen = None , genOpts = None ) : if gen is None : # If not specified, give a default object so messaging will work self . gen = OutputGenerator ( ) else : self . gen = gen if genOpts is None : # If no generator is provided, we may still need the XML API name # (for example, in genRef.py). self . genOpts = GeneratorOptions ( apiname = APIConventions ( ) . xml_api_name ) else : self . genOpts = genOpts "Options controlling features to write and how to format them" self . gen . registry = self self . gen . genOpts = self . genOpts self . gen . genOpts . registry = self self . tree = None "ElementTree containing the root `<registry>`" self . typedict = { } "dictionary of TypeInfo objects keyed by type name" self . groupdict = { } "dictionary of GroupInfo objects keyed by group name" self . enumdict = { } "dictionary of EnumInfo objects keyed by enum name" self . cmddict = { } "dictionary of CmdInfo objects keyed by command name" self . apidict = { } "dictionary of FeatureInfo objects for `<feature>` elements keyed by API name" self . extensions = [ ] "list of `<extension>` Elements" self . extdict = { } "dictionary of FeatureInfo objects for `<extension>` elements keyed by extension name" self . spirvextdict = { } "dictionary of FeatureInfo objects for `<spirvextension>` elements keyed by spirv extension name" self . spirvcapdict = { } "dictionary of FeatureInfo objects for `<spirvcapability>` elements keyed by spirv capability name" self . formatsdict = { } "dictionary of FeatureInfo objects for `<format>` elements keyed by VkFormat name" self . emitFeatures = False """True to actually emit features for a version / extension,
          or False to just treat them as emitted""" self . breakPat = None "regexp pattern to break on when generating names" # self.breakPat     = re.compile('VkFenceImportFlagBits.*') self . requiredextensions = [ ] # Hack - can remove it after validity generator goes away # ** Global types for automatic source generation ** # Length Member data self . commandextensiontuple = namedtuple ( 'commandextensiontuple' , [ 'command' , # The name of the command being modified 'value' , # The value to append to the command 'extension' ] ) # The name of the extension that added it self . validextensionstructs = defaultdict ( list ) self . commandextensionsuccesses = [ ] self . commandextensionerrors = [ ] self . filename = None