2017-02-16 29 views
-1

После разбора я хочу получить метаданные поля или метода исходного кода.C++: информация метаданных в исходном коде. Чтобы просмотреть через AST

Целью этого является сбор информации об исходном коде после разбора.

В java, я использовал аннотацию. После синтаксического анализа я нахожу пользовательскую аннотацию по классу, полю или методу. Под кодом пример.

@BizObject //By this annotation I could understand this class is related with bissness. 
public class biz ... { 
    @DI //this field needs Dependency Injection. 
    public Logger logger; 
} 

При анализе я хочу получить заданную пользователем метаинформацию источника. Как пользователь записывает метаданные в исходный код? как аннотация java.

Я знаю, что в C++ для этой цели нет прямого атрибута. Мне просто интересно, как помечать метаданные косвенно, используя другие вещи.

+0

В родном языке C++ такой вещи нет. –

+0

Если нет ничего, есть идея, используя другие вещи? , например, используя макрос, который является просто комментарием. На самом деле я использовал это, но не смог получить комментарий после разбора. Я думаю, сканер пропустит это. –

+0

Какой парсер вы используете? Есть такие вещи, как '__attribute__', используемые с некоторыми компиляторами C++. –

ответ

0

Автоответ.

Я решил эту проблему, используя спецификатор атрибута . Он похож на аннотацию Java.

http://en.cppreference.com/w/cpp/language/attributes http://www.codesynthesis.com/~boris/blog/2012/04/18/cxx11-generalized-attributes/ https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html

С помощью атрибута спецификатор и CDT парсер, я мог бы получить мета-данные, относящиеся к узлу синтаксиса в.

CDT парсерная поддержка GNU.

 Смежные вопросы

  • Нет связанных вопросов^_^