GCC tree access
Jeffrey Richardson
jlrichardson@link.com
Tue Nov 12 06:22:00 GMT 2002
Hello,
I am interested in developing a combination "intelligent editor" and
source browser using the tree structure created internally by GCC, as
described in the article on trees in the GCC Internals manual.
I see the example "process_stmt" function in the article on Function
Bodies. I also see the function "expand_stmt" in the file c-semantics.c
which is called by a number of functions including several genrtl_
functions, and the c_expand_body function. The c_expand_body function
is in turn called from several places including finish_function in
c-decl.c.
My question is this: if I write my own version of "precess_stmt" which
uses the macros to access various tree information and write it out to a
file, where is the best place to call my function? Can it be called
from a single location (such as finish_function), and still have access
to the full tree structure?
Also, what is the "permanence" of the tree structure. As a source file
is parsed, and the tree structure is constructed, is there a point at
which branches of the tree are discarded because they are no longer
needed (e.g. when a function has been completed), or is there a point at
which a complete tree exists for the entire source file, which would
therefore be the best time to call a function to output a "snapshot" of
the tree? (I guess this is actually a re-statement of my first
question.)
If there are any examples or code fragments of similar applications that
you can share with me, I would very much appreciate it. I am primarily
interest in processing C source code right now, but would like to make
the application robust enough to handle C++ as well, and take advantage
of the fact that they are both parsed into a tree.
Thankyou,
Jeff Richardson
jlrichardson@link.com
(407)382-1580
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jlrichardson.vcf
Type: text/x-vcard
Size: 186 bytes
Desc: Card for Jeff Richardson
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20021112/3c715766/attachment.vcf>
More information about the Gcc
mailing list