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