Извлечение вызова функции в коде AC с использованием Clang
Я хочу написать программу, которая разлагает выражения (в коде C), в которых они имеют вызовы функций, и извлекает каждый вызов функции в переменную. Например:
x = A() + B();
следует изменить на:
a = A();
b = B();
x = a + b;
Я пишу это, используя Clang и RecursiveASTVisitor. Вот мое решение. Сначала я должен найти все функции и объявить переменную для каждой из них в первом главном блоке, в котором находятся все вызовы. Затем искать бинарные операции, в которых вызов функции находится с обеих сторон. Затем извлеките вызовы функций и используйте вместо них переменные. Поскольку я новичок в этом, я не знаю, лучше ли это делать, или это решение работает вообще?