diff options
author | Dimitri van Heesch <doxygen@gmail.com> | 2020-05-22 14:08:39 (GMT) |
---|---|---|
committer | Dimitri van Heesch <doxygen@gmail.com> | 2020-05-22 14:08:39 (GMT) |
commit | ff5ba4a40fa13c0987272d463ba0edc57bc10fa6 (patch) | |
tree | 7041494e22c0b3d9eb68ad7a89f3fd48e4bcdf5a /src/doxygen.cpp | |
parent | e3470060b067bbb5d949de01758aff491fc804c3 (diff) | |
download | Doxygen-ff5ba4a40fa13c0987272d463ba0edc57bc10fa6.zip Doxygen-ff5ba4a40fa13c0987272d463ba0edc57bc10fa6.tar.gz Doxygen-ff5ba4a40fa13c0987272d463ba0edc57bc10fa6.tar.bz2 |
Refactoring: Removed creation of MemberDef's for macro definitions from pre.l
Diffstat (limited to 'src/doxygen.cpp')
-rw-r--r-- | src/doxygen.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 5f324fd..c7c9b45 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -160,6 +160,7 @@ bool Doxygen::generatingXmlOutput = FALSE; bool Doxygen::markdownSupport = TRUE; GenericsSDict *Doxygen::genericsDict; Preprocessor *Doxygen::preprocessor = 0; +DefineList Doxygen::macroDefinitions; // locally accessible globals static std::unordered_map< std::string, const Entry* > g_classEntries; @@ -7698,6 +7699,36 @@ static void addSourceReferences() //---------------------------------------------------------------------------- +// add the macro definitions found during preprocessing as file members +static void buildDefineList() +{ + for (const auto &def : Doxygen::macroDefinitions) + { + std::unique_ptr<MemberDef> md { createMemberDef( + def->fileName,def->lineNr,def->columnNr, + "#define",def->name,def->args,0, + Public,Normal,FALSE,Member,MemberType_Define, + ArgumentList(),ArgumentList(),"") }; + + if (!def->args.isEmpty()) + { + md->moveArgumentList(stringToArgumentList(SrcLangExt_Cpp, def->args)); + } + md->setInitializer(def->definition); + md->setFileDef(def->fileDef); + md->setDefinition("#define "+def->name); + + MemberName *mn=Doxygen::functionNameLinkedMap->add(def->name); + if (def->fileDef) + { + def->fileDef->insertMember(md.get()); + } + mn->push_back(std::move(md)); + } +} + +//---------------------------------------------------------------------------- + static void sortMemberLists() { // sort class member lists @@ -10876,6 +10907,10 @@ void parseInput() * Gather information * **************************************************************************/ + g_s.begin("Building macro definition list...\n"); + buildDefineList(); + g_s.end(); + g_s.begin("Building group list...\n"); buildGroupList(root.get()); organizeSubGroups(root.get()); |