summaryrefslogtreecommitdiffstats
path: root/doc/overview.rst
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2009-08-17 19:31:37 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-08-17 19:31:37 -0300
commite0c29962e6f334452f0c9db2caaf6ed18065de85 (patch)
treecee27801c196fbcacf6130ad64216af133b555dd /doc/overview.rst
downloadshiboken-e0c29962e6f334452f0c9db2caaf6ed18065de85.tar.gz
shiboken-e0c29962e6f334452f0c9db2caaf6ed18065de85.tar.xz
shiboken-e0c29962e6f334452f0c9db2caaf6ed18065de85.zip
The End Is the Beginning Is the End
Diffstat (limited to 'doc/overview.rst')
-rw-r--r--doc/overview.rst46
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.
+