path: root/doc/overview.rst
diff options
authorMarcelo Lira <>2009-08-17 19:31:37 -0300
committerMarcelo Lira <>2009-08-17 19:31:37 -0300
commite0c29962e6f334452f0c9db2caaf6ed18065de85 (patch)
treecee27801c196fbcacf6130ad64216af133b555dd /doc/overview.rst
The End Is the Beginning Is the End
Diffstat (limited to 'doc/overview.rst')
1 files changed, 46 insertions, 0 deletions
diff --git a/doc/overview.rst b/doc/overview.rst
new file mode 100644
index 00000000..2ceb42fb
--- /dev/null
+++ b/doc/overview.rst
@@ -0,0 +1,46 @@
+.. _gen-overview:
+Generator Overview
+In a few words, the Generator is a system that
+parses a collecion of header and typesystem files, generating other
+files (code, documentation, etc.) as result.
+Creating new bindings
+.. figure:: images/bindinggen-development.png
+ :scale: 80
+ :align: center
+ Creating new bindings
+Each module of the generator system has a specific role.
+1. Provide enough data about the classes and functions.
+2. Generate valid code, with modifications from typesystems and
+ injected codes.
+3. Modify the API to expose the objects in a Python-friendly way.
+4. Insert customizations where handwritten code is needed.
+.. figure:: images/boostqtarch.png
+ :scale: 80
+ :align: center
+ Runtime architecture
+Handwritten inputs
+Creating new bindings involves creating two pieces of "code":
+The typesystem and the inject code.
+:typesystem: XML files that provides the developer with a tool to
+ customize the way that the generators will see the classes
+ and functions. For example, functions can be renamed, have
+ its signature changed and many other actions.
+:inject code: allows the developer to insert handwritten code where
+ the generated code is not suitable or needs some customization.