Извлечение вызова функции в коде AC с использованием Clang

Я хочу написать программу, которая разлагает выражения (в коде C), в которых они имеют вызовы функций, и извлекает каждый вызов функции в переменную. Например:

x = A() + B();

следует изменить на:

a = A();
b = B();
x = a + b;

Я пишу это, используя Clang и RecursiveASTVisitor. Вот мое решение. Сначала я должен найти все функции и объявить переменную для каждой из них в первом главном блоке, в котором находятся все вызовы. Затем искать бинарные операции, в которых вызов функции находится с обеих сторон. Затем извлеките вызовы функций и используйте вместо них переменные. Поскольку я новичок в этом, я не знаю, лучше ли это делать, или это решение работает вообще?

0 ответов

Другие вопросы по тегам