[cfe-dev] Adding C++ code with a plugin
Benjamin Orgogozo
benjamin.orgogozo at normalesup.org
Thu Jul 21 08:52:52 PDT 2011
Hello,
I'm new to this mailing-list and to CLANG in general so please forgive
me if I ask a quite stupid question...
I've been reading a few mailing lists and webpages on CLANG now but I
can't find a clear answer to my question so I hope someone here could at
least point me to the correct resource.
My goal is simple: I want to compile a C++ code but after automatically
adding a few lines of code. Here are my question:
- can (or want) I do that with a plugin? At the beginning I wanted to
write a plugin to the front-end and change the AST but it seems (but I
hope I'm wrong) that when I use the "load" and "plugin" command line
option, I can't generate code at the end. Is it true or not?
- How should I do this transformation? The code I want to add is really
simple: I just want to add function calls in the constructor of
classes with specific class members as parameters. For example, I want
to transform:
class A {
float f;
};
class foo {
int bar;
foo() {}
};
into
class A {
float f;
};
class foo {
int bar;
foo() {baz(bar);}
};
It seems that I have two options:
* use a rewriter to add nodes within the AST, but it seems that it's
only for source to source transformation (and I would like to avoid
that if possible).
* use a TreeTransform which looks fine but I think I read somewhere
that it modifiying the AST for compiling it later wasn't always a
good idea.
>From what I understood, it seems that I want to use treetransform, but I
wonder if I can use it within a plugin *and* generate code with only one
call to clang.
Any comment and pointer is more than welcome!
Thanks,
--
Benjamin Orgogozo
More information about the cfe-dev
mailing list