как получить как "#include <...>" операторы с помощью ast matcher? - PullRequest
0 голосов
/ 26 июня 2019

Я хочу удалить операторы, такие как "#include" в исходном файле на языке C. Следовательно, как я могу сопоставить такие операторы, используя сопоставления AST clang или используя предоставленный clang API для C ++?

1 Ответ

0 голосов
/ 26 июня 2019

К сожалению, это невозможно, потому что #include s это директивы препроцессора , а не операторы.Они не являются частью AST, и поэтому сопоставители AST бесполезны.

Возможно, вы захотите использовать механизм обратных вызовов Preprocessor от clang.Сначала вам нужно определить свой обратный вызов, который должен быть экземпляром PPCallbacks , переопределить метод InclusionDirective и зарегистрировать свой обратный вызов, используя addPPCallbacks .

Я надеюсь, что эта информация поможет вам в решении вашей проблемы.Счастливого взлома с Clang!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...