Я пытаюсь изменить код 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)