class_docstr: Base API generator class. We derive several subclasses to implement
  the different backends.
class_docstr_tok: ["Base","API","generator","class",".","We","derive","several","subclasses","to","implement","the","different","backends","."]
code: def save(self):
      # Remove too many whitespace
      text = "\n".join(self.lines) + "\n"
      for i in range(10):
          text = text.replace("\n\n\n\n", "\n\n\n")
      # Write
      with open(self.filename, "wb") as f:
          f.write((PREAMBLE % self.DESCRIPTION).encode("utf-8"))
          for line in self.PREAMBLE.splitlines():
              f.write(line[4:].encode("utf-8") + b"\n")
          f.write(b"\n")
          f.write(text.encode("utf-8"))
  
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 2 for calling the ApiGenerator obj's underlying member method code with example usage: obj.save() without return types