[cfe-dev] libTooling Questions : EndVisit like functionality
Manuel Klimek via cfe-dev
cfe-dev at lists.llvm.org
Thu Dec 15 00:35:28 PST 2016
You can overwrite the Traverse* methods in RecursiveASTVisitor like the
ASTMatchFinder does.
On Thu, Dec 15, 2016 at 8:49 AM Hemant Bhagat via cfe-dev <
cfe-dev at lists.llvm.org> wrote:
> Hi,
>
>
>
> I have just started experimenting with clang AST and libTooling.
>
> My project requirement is to generate a json from an AST using libTooling.
>
> For that I need to track the end of every visit.
>
>
>
> For example.
>
>
>
> int main()
>
> {
>
> Int x = 10;
>
> return 0;
>
> }
>
>
>
> Corresponding json looks like (not the exact format)
>
> {
>
> TranslationUnit
>
> {
>
> Function <main>
>
> {
>
> {
>
> Return Type <int>
>
> }
>
> {
>
> End Return Type
>
> }
>
> {
>
> Block Stmt "{"
>
> }
>
> {
>
> Variable
> Declaration x
>
> }
>
> {
>
> End Variable
> Declaration
>
> }
>
> {
>
> Return Stmt 0
>
> }
>
> {
>
> End Return Stmt
>
> }
>
> {
>
> * End Block
> Stmt*
>
> }
>
> }
>
> {
>
> *End Function*
>
> }
>
> }
>
> {
>
> * End TranslationUnit*
>
> }
>
> }
>
>
>
> In the above code, I will create a json node for every token visit
> recursively from AST. (see example json above)
>
> Question: How will I get the know that the function has reached the end
> while visiting nodes. (highlighted in bold red)
>
> OR is there any way to control the AST visitors as If we visit the
> children of function then all the children get visited twice.
>
>
>
> Any kind of help is really very appreciated as it is very important.
>
>
>
> Thanks,
>
> Hemant
> DISCLAIMER :- This e-mail may contain privileged and confidential
> information which is the property of Acellere GmbH and its associated
> companies. It is intended only for the use of the individual or entity to
> whom it is addressed. If you are not the intended recipient, you are not
> authorized to read, retain, copy, print, distribute or use this message. If
> you have received this communication in error, please notify the sender and
> delete all copies of this message. Acellere GmbH and its associated
> companies does not accept any liability for virus infected mails.
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://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/20161215/ef7ffd76/attachment.html>
More information about the cfe-dev
mailing list