如何通过使用clang libtooling修改cast AST在任何语句之前/之后插入新语句

时间:2019-04-11 09:50:23

标签: clang libtooling

我正在尝试使用clang libtooling更改C ++代码,并希望通过修改AST而不是仅插入预定义的文本来实现这一点。

例如,我需要在for循环后添加一些语句。

输入:

void foo( ) { }

int main( ) {
  for( int i = 0; i < 10; i++ ) {

  }
}

输出:

void foo( ) { } 

int main( ) {
  for( int i = 0; i < 10; i++ ) {
    foo( i );
  }
}

我能够先获取foo的信息,然后再获取i,但无法修改AST以插入foo(i)的呼叫

0 个答案:

没有答案