Поэтому мне нужно иметь возможность анализировать некоторые относительно простые файлы C ++ с аннотациями и генерировать из них дополнительные исходные файлы.
Например, у меня может быть что-то вроде этого:
//@ service
struct MyService
{
int getVal() const;
};
Мне нужно найти аннотацию // @ service и получить описание структуры, которая следует за ней.
Я смотрю на возможное использование LLVM / Clang, так как, похоже, есть поддержка библиотек длявстраивание функций компилятора / синтаксического анализа в сторонние приложения.Но я действительно довольно невежествен в том, что касается синтаксического анализа исходного кода, поэтому я не уверен, что именно мне нужно искать, или с чего начать.
Я понимаю, что AST - это ядроязыковые представления, и есть поддержка библиотеки для создания AST из исходных файлов в Clang.Но комментарии не будут частью права AST?Итак, что было бы хорошим способом найти представление структуры, которая следует за конкретной аннотацией комментария?
Меня не слишком беспокоит обработка случаев, когда аннотация появляется в неподходящем месте, поскольку это будет толькоиспользуется для анализа файлов C ++, специально написанных для этого приложения.Но, конечно, чем крепче я это сделаю, тем лучше.