Как вставить новые операторы до / после любого оператора, изменив Clang AST с помощью Clang libtooling - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь изменить код C ++, используя libtooling clang, и хочу добиться этого, изменив 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)

...