The Binding Generator is a utility that parses the headers for a given C/C++ library and modifies this data with the information and guides from XML files (called typesystem files) containing complementar semantic information, modifications, renamings, etc, in order to generate binding source code (or documentation, or anything you want) for the target language for which it was written.
Architecture
Binding Generators are created using the Generator Runner facilities, which are composed of the abstract Generator class, that must be extended by generator front-ends and built as loadable modules. The Generator Runner application is responsible for instantiating the API Extractor to parse the headers and binding information from the type system files, after that it will load and call the generator front-ends indicated by the user.

Binding Generator Architecture
Limitations
The Python binding generator as it is now delivers code too much tied to Qt4 and the PySide Python binding, specifically it relies on a base library provided by PySide to take care of a number of situations that must be dealt with. Some are very specific of Qt4 (signals) and are in the proper place with PySide, others (wrapper-C++ relationships, ownership, etc) are generic binding stuff and should be provided in a generic fashion by the Binding Generator.

Current Generator Scheme

Correct Generator Scheme




