Update of /cvsroot/pygccxml/source/pyplusplus/docs
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28483/pyplusplus/docs
Modified Files:
pyplusplus.rest
Added Files:
quotes.rest
Log Message:
Fixing introduction to pyplusplus.
--- NEW FILE: quotes.rest ---
===============================
What they say about pyplusplus?
===============================
"... If you can, use pyplusplus over pyste. I say that for ALL users of
pyste, pyplusplus is now mature enough to be useful as well as being
actively developed. It can also do quite a few tricks pyste cannot. "
Niall Douglas, the author of `TnFOX`_ library
"... On a related note, I highly suggest that any users out there that have
tried/used Pyste but have found it to be too lacking in power should
really give pyplusplus a try. It has allowed me to do everything I
ever wanted to do with Pyste and couldn't and then some. It is really
a great tool and I can't thank Roman enough for taking the time to
create it and make it available. "
Allen Bierbaum, the author of `PyOpenSG`_ library
.. _`TnFOX`: http://www.nedprod.com/TnFOX/
.. _`PyOpenSG`: https://realityforge.vrsource.org/view/PyOpenSG/WebHome
..
Local Variables:
mode: indented-text
indent-tabs-mode: nil
sentence-end-double-space: t
fill-column: 70
End:
Index: pyplusplus.rest
===================================================================
RCS file: /cvsroot/pygccxml/source/pyplusplus/docs/pyplusplus.rest,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** pyplusplus.rest 6 Apr 2006 06:15:59 -0000 1.5
--- pyplusplus.rest 6 Apr 2006 12:34:45 -0000 1.6
***************
*** 42,47 ****
Only very small and simple projects could be exported as is. Most of the projects
! still require human invocation. Basically there are 2 questions that an user
! should answer:
1. which declarations should be exported
--- 42,47 ----
Only very small and simple projects could be exported as is. Most of the projects
! still require human invocation. Basically there are 2 questions that you should
! answer:
1. which declarations should be exported
***************
*** 49,55 ****
Of course `pyplusplus`_ can not answer those question, but it provides maximum
! help for the developer to implement/translate an user requirements to code. So
! what help a developer get from `pyplusplus`_ in order to deal with first question?
! `pyplusplus`_ provides very powerful query interface.
For example in one line of code you can select all free functions that have
--- 49,56 ----
Of course `pyplusplus`_ can not answer those question, but it provides maximum
! help for you to implement an user requirements.
!
! How can `pyplusplus`_ help you with first question? `pyplusplus`_ provides very
! powerful and simple query interface.
For example in one line of code you can select all free functions that have
***************
*** 75,102 ****
mb.decls( lambda decl: 'impl' in decl.name ).exclude()
! Okay, enough with code. If you want to read more code please read the tutorials.
! I am sure you already noted some interesting detail: all queries does not specify
! declaration name. It is possible, but still, why I did not? Because this form
! allows you to setup few rules, that will continue to work even after C++ has
! been changed. Thus you don't have to modify code generator source code, every
! time exported C++ code was changed.
So far, so good what about second question? Well, by default `pyplusplus`_
! generates a code that will satisfy almost all developers. But sometimes a developer
! need to modify generated code. `pyplusplus`_ relevant classes could be configured
! in many ways. But sometimes this is still not enough. Sometimes a developer need
! full control over generated code. One of the bigest problems, that I believe
! `pyplusplus`_ solved, is modifying generated code. How many code generators did
! you use, that allow you to put your code any where, to reorder generated code as
! you wish? `pyplusplus`_ allows you to do that.
`pyplusplus`_ introduces new concept: code creator and code creator's tree.
! Code creator responsibility is to create small well defined piece of code.
! For example *include_t* code creator is responsible to create code for C++
! include directive. Code creators tree is an ordered set of code creators.
! Some of code creators can contain others. Module is the top level code creator.
! A developer is able to add, delete or modify single/group of code creators.
! Here you can find UML diagram of almost all code creators: `class diagram`_.
.. _`class diagram`: ./code_creators.png
--- 76,100 ----
mb.decls( lambda decl: 'impl' in decl.name ).exclude()
! Please, note the way queries were built. You can think about those queries as
! the rules, that will continue to work even after exported C++ code was changed.
! It means that you don't have to change code generator source code every time.
So far, so good what about second question? Well, by default `pyplusplus`_
! generates a code that will satisfy almost all developers. `pyplusplus`_ relevant
! classes could be configured in many ways to satisfy your needs. But sometimes
! this is still not enough. There are use cases when you need full control over
! generated code. One of the bigest problems, with code generators in general, is
! modifying generated code and preserving changes. How many code generators did
! you use or know, that allow you to put your code any where or to reorder generated
! code as you wish? `pyplusplus`_ allows you to do that.
`pyplusplus`_ introduces new concept: code creator and code creator's tree.
! You can think about code creator's tree as some kind of `AST`_. The only difference
! is that code creator's tree has higher interface. For example ``include_t`` code
! creator is responsible to create C++ ``include`` directive code. You have full
! control over code creators tree, before it is written to disc. Here you
! can find UML diagram of almost all code creators: `class diagram`_.
+ .. _`AST`: http://en.wikipedia.org/wiki/Abstract_syntax_tree
.. _`class diagram`: ./code_creators.png
|