code: def main():
      annotations = parse_anotations()
      gl2es2_parser, webgl_parser = create_parsers()
      vispy_ext_parser = headerparser.Parser(
          os.path.join(THISDIR, "headers", "vispy_ext.h")
      )
      constant_definitions = list(
          gl2es2_parser.constants.values()
      ) + list(vispy_ext_parser.constants.values())
      create_constants_module(constant_definitions)
  
      # Get full function definitions and report
      func_collector = FunctionCollector(
          annotations, gl2es2_parser, webgl_parser
      )
      func_collector.collect_function_definitions()
  
      for Gen in [
          ProxyApiGenerator,
          Gl2ApiGenerator,
          Es2ApiGenerator,
          PyOpenGL2ApiGenerator,
      ]:
          gen = Gen()
          gen.add_functions(func_collector.all_functions)
          func_collector.functions_auto.update(gen.functions_auto)
          func_collector.functions_anno.update(gen.functions_anno)
          func_collector.functions_todo.update(gen.functions_todo)
          gen.save()
  
      func_collector.check_unused_webgl_funcs()
      func_collector.report_status()
  
imports: from __future__ import annotations
  import os
  import sys
  import headerparser
  from annotations import parse_anotations
  from OpenGL import GL
label_desc: Use image node_id 4 for calling a global function with example usage: main() without return types