Я работаю над CLang 3.5. Я пытаюсь получить информацию о переменных, объявленных в проекте C++.CLang Libtooling: выборка типа переменной внутри clang :: VarDecl, clang :: FieldDecl или clang :: ParmVarDecl
Как получить тип данных или квалифицированное имя класса переменной в объектах clang::VarDecl
, clang::FieldDecl
или clang::ParmVarDecl
? Я попытался найти функцию, которая может возвращать тип данных или имя класса переменной в документе для clang::VarDecl
, приведенной здесь.
http://clang.llvm.org/doxygen/classclang_1_1VarDecl.html
Я также попытался посмотреть в код $LLVM/tools/clang/tools/clang-check/ClangCheck.cpp
, потому что при переходе ЦМД ARG --ast-dump
он показывает всю информацию о каждом узле AST включая все переменные, объявленные. Интересно, как получить доступ ко всей этой информации.
Я использую ASTMatchers
найти мои объявления переменных, те:
fieldDecl().bind("field")
parmVarDecl().bind("param")
varDecl().bind("var")
Может кто-нибудь пожалуйста, скажите мне, как я могу получить тип данных всех переменных delcared?
Должен ли я добавить больше деталей к нему? Если я прошу что-то очень очевидное, предоставьте мне некоторые ссылки на соответствующие учебники. Или, по крайней мере, скажите мне, с какого класса начать, если я хочу понять разбор и доступ к AST в исходном коде CLang. –
Попробуйте посмотреть llvm/tools/clang/unittests/AST и взгляните на код, касающийся прохождения AST. Я лично нашел эту ссылку очень полезной: http://clang.llvm.org/docs/LibASTMatchersTutorial.html –