[cfe-dev] Is there anyway I can add some custom information to the AST?

Yafei Liu via cfe-dev cfe-dev at lists.llvm.org
Sat Jul 4 10:58:08 PDT 2020


Hi Nathan, I found that this example is based on clang11, my clang10
libraries do not have corresponding classes. I read the clang11 release
note, which is in progressing, and found that in
https://clang.llvm.org/docs/ReleaseNotes.html#attribute-changes-in-clang,
attribute plugin is a new feature.

So does it mean:
1. Even if I implemented an attribute plugin (with the code on master
branch), I have to wait until Clang11 has released?
2. Or, the attribute plugin can be used in older versions of Clang?

On Sun, Jul 5, 2020 at 12:34 AM Nathan James <n.james93 at hotmail.co.uk>
wrote:

> Hi Yafei,
>
> You can use the Attribute system to decorate AST nodes, they can also
> be loaded via plugins. See `clang/examples/Attrbiute/` to see how they
> are created and registered.
>
> Then you can add an attribute to the class decl, for example
> > class [[convert]] MyVector {};
>
> Hope this helps,
> Nathan James
>
> On Sun, 2020-07-05 at 00:05 +0800, Yafei Liu via cfe-dev wrote:
> > Hi, all.
> > I'm writing some tools to convert a C++ class to something else, and
> > I want to add  some custom information to the AST.
> >
> > At first, I decided to add some comments to mark some classes, but I
> > found that the AST does not contain comments.
> >
> > Secondly, I want to customize an attribute, but I found that it needs
> > to recompile the Clang, I didn't find a "plug-in" way.  Since my
> > tools are designed for public usage, a customized compiler is not
> > very considerable.
> >
> > Currently I have to force the user to declare their class names and
> > field names with some special rules, but this is not very acceptable
> > to me.
> >
> > So anyone knows if there's a better way to add some custom
> > information to the AST?
> > _______________________________________________
> > cfe-dev mailing list
> > cfe-dev at lists.llvm.org
> > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20200705/ed0bab4a/attachment-0001.html>


More information about the cfe-dev mailing list