Разрешить только синтаксический анализ c в clang - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь внедрить инструмент Clang, который выполняет анализ syntacti c с использованием ASTMatcher API. Я пытаюсь выяснить, как задать дополнительные флаги для clang, чтобы отключить проверки semanti c. Я знаю, что Clang создает гигантский AST, который включает системные заголовки. Есть ли способ разобрать исходный код при отключении проверок semanti c, которые приводят к ошибкам неизвестного типа? Я просто хочу проанализировать целостность syntacti c исходного кода данного файла. До сих пор я пытался обойти эту проблему, изменив DSL, чтобы проверить, является ли соответствующий код из основного файла:

cxxRecordDecl(isExpansionInMainFile()).bind("class");

Но это не мешает Clang просматривать файлы заголовков.

1 Ответ

0 голосов
/ 28 января 2020

К сожалению, невозможно использовать простой синтаксический анализ c без sema. Проблема не только в clang, но и во всех синтаксических анализаторах C ++. Без одновременного анализа semanti c, любой syntacti c анализ является неоднозначным. Вопрос правильно рассмотрен в этом ответе .

...