Re: SVN
Stefan Seefeld <[email protected]> Fri, 12 Jan 2007 08:49:31 -0500
| Newsgroups | gmane.comp.documentation.synopsis |
|---|---|
| Message-ID | <[email protected]> |
Lorenzo Pastrana wrote:
>
>
> Stefan Seefeld wrote:
>> Just to be clear, though: the trunk contains the in-development code
>> (such as a rewritten
>> C++ parser). The recent 0.9 release is based on the 'Synopsis_0_8'
>> branch. (I should consider
>> renaming that branch, if people find the current name confusing.)
>
> Well if 0_8 branch effecively contains 0_9 sure that's, not obvious at
> least :D
There is no such thing as '0_9'. What happened is that originally
the 0_8 branch was created as the release branch for Synopsis 0.8.
However, during my work on the trunk I realized that getting the
new code stable enough to take over would take longer than I wanted
to spend on the next release, and so I decided make the next (i.e. 0.9)
release out of that branch.
> Might checkout that one, since I'm in evaluation phase ...
Out of curiosity, why aren't you using the release package for evaluation ?
Or are you evaluating whether to help developing it (which would be very
welcome) ?
> Meanwhile I'd like to validate some simple concepts about Synopsis and
> it's usage...
>
> My main concern is generating code based on the AST, input material will
> mostly be C++ and Idl declarations, generated code a C++ binding layer
> for the engine I'm working on.
> Witch I believe I can do by feeding appropriate parser with the headers,
> walking down the AST, matching nodes, and generating the glue accordingly.
>
> My questions :
>
> Is the AST accesible from C++ as it is from python or it is a
> specificity of the python level ?
The AST in its current form is implemented in python. However, there are
C++ bindings for the AST types, so I can generate it from within C++
(i.e. the various parsers that are mostly written in C++).
You may use that binding to access (traverse) the AST.
> Do I have to use python to write a custom formatter or can I do it in C++ ?
What is the reason for you to prefer to do it in C++ ?
> http://synopsis.fresco.org/docs/Tutorial/ch05.html is rather laconic, is
> there a more verbose place I can find Infos about writing a custom
> formatter for the job ?
The reason I don't discuss the C++ API in the tutorial (yet) is that it is
very much in development, i.e. a moving target. I should have mentioned that
in the tutorial, with a reference to the Development Guide, where you can
find a bit more information:
http://synopsis.fresco.org/docs/DevGuide/cxx.html
That, however, doesn't cover the AST, which, as I said above, only exists
in the python layer.
If you provide some more context I may be able to suggest how to approach
a solution.
> http://synopsis.fresco.org/docs/Manual/python/Source/Synopsis/Formatters/Dump.py.html
>
> Seems to be a good place for a start but what about C++
>
> Questions about python/C++ are because I'd like to use Synopsis in an
> import module for my tool and would like to avoid depending on python...
Sorry, that last paragraph confuses me. What do you mean by 'import module'
if not a python module ?
(And why would you like to avoid python ?)
FWIW, I don't have plans to make Synopsis C++-only with python wrappers around
it. Using python intrinsically has some significant advantages.
However, as Synopsis evolves, and as your source-to-source translation needs
become more fine-grained, you may discover that you really want to traverse
the parse tree for code generation, not the AST (or at least what I currently
call the AST), so you may end up with not depending on python.
I hope all this makes sense to you and you are not discouraged. Let me know
if I can help in any way.
Regards,
Stefan
--
...ich hab' noch einen Koffer in Berlin...