Мне удалось успешно скомпилировать clang для окон с cmake и visual studio 10. Я хотел бы получить XML файл как представление AST исходного кода. Существует один вариант, который дает результат с clang с gcc под linux (ubuntu), но не работает в окне окна:
clang -cc1 -ast-print-xml source.c
Однако это вызывает этап компиляции (чего я бы хотел избежать). Копание в исходном коде не помогло мне, поскольку я совершенно новичок в clang. Мне удалось создать двоичную версию AST, используя:
clang -emit-ast source.c
К сожалению, этот формат неприменим непосредственно для разбора. Есть ли какой-нибудь существующий метод для прямого генерации дерева XML вместо двоичного в clang?
Цель состоит в том, чтобы использовать представление XML в других инструментах в среде .NET, поэтому мне нужно будет сделать некоторую обертку вокруг родной clang lib для доступа к бинарному AST. Может быть, есть третий вариант, если кто-то уже написал некоторый бинарный анализатор AST для .NET?
Возможно ли, что я упустил что-то вроде, если AST, созданный передним концом clang, не эквивалентен тому, который был сгенерирован на этапе компиляции.