#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <errno.h>
#include <algorithm>
#include <unordered_map>
#include <memory>
#include <cinttypes>
#include <chrono>
#include <clocale>
#include <locale>
#include "version.h"
#include "doxygen.h"
#include "scanner.h"
#include "entry.h"
#include "index.h"
#include "message.h"
#include "config.h"
#include "util.h"
#include "pre.h"
#include "tagreader.h"
#include "dot.h"
#include "msc.h"
#include "docparser.h"
#include "dirdef.h"
#include "outputlist.h"
#include "declinfo.h"
#include "htmlgen.h"
#include "latexgen.h"
#include "mangen.h"
#include "language.h"
#include "debug.h"
#include "htmlhelp.h"
#include "qhp.h"
#include "ftvhelp.h"
#include "defargs.h"
#include "rtfgen.h"
#include "sqlite3gen.h"
#include "xmlgen.h"
#include "docbookgen.h"
#include "defgen.h"
#include "perlmodgen.h"
#include "reflist.h"
#include "pagedef.h"
#include "bufstr.h"
#include "commentcnv.h"
#include "cmdmapper.h"
#include "searchindex.h"
#include "parserintf.h"
#include "htags.h"
#include "pycode.h"
#include "pyscanner.h"
#include "fortrancode.h"
#include "fortranscanner.h"
#include "xmlcode.h"
#include "sqlcode.h"
#include "lexcode.h"
#include "lexscanner.h"
#include "code.h"
#include "portable.h"
#include "vhdljjparser.h"
#include "vhdldocgen.h"
#include "vhdlcode.h"
#include "eclipsehelp.h"
#include "cite.h"
#include "markdown.h"
#include "arguments.h"
#include "memberlist.h"
#include "layout.h"
#include "groupdef.h"
#include "classlist.h"
#include "namespacedef.h"
#include "filename.h"
#include "membername.h"
#include "membergroup.h"
#include "docsets.h"
#include "formula.h"
#include "settings.h"
#include "context.h"
#include "fileparser.h"
#include "emoji.h"
#include "plantuml.h"
#include "stlsupport.h"
#include "threadpool.h"
#include "clangparser.h"
#include "symbolresolver.h"
#include "regex.h"
#include "fileinfo.h"
#include "dir.h"
#include "conceptdef.h"
#include <signal.h>
浏览源代码.
|
void | initResources () |
|
void | clearAll () |
|
static void | addMemberDocs (const Entry *root, MemberDefMutable *md, const QCString &funcDecl, const ArgumentList *al, bool over_load, uint64 spec) |
|
static void | findMember (const Entry *root, const QCString &relates, const QCString &type, const QCString &args, QCString funcDecl, bool overloaded, bool isFunc) |
|
static bool | findClassRelation (const Entry *root, Definition *context, ClassDefMutable *cd, const BaseInfo *bi, const TemplateNameMap &templateNames, FindBaseClassRelation_Mode mode, bool isArtificial) |
|
static Definition * | findScopeFromQualifiedName (NamespaceDefMutable *startScope, const QCString &n, FileDef *fileScope, const TagInfo *tagInfo) |
|
static void | addPageToContext (PageDef *pd, Entry *root) |
|
static void | addRelatedPage (Entry *root) |
|
static void | buildGroupListFiltered (const Entry *root, bool additional, bool includeExternal) |
|
static void | buildGroupList (const Entry *root) |
|
static void | findGroupScope (const Entry *root) |
|
static void | organizeSubGroupsFiltered (const Entry *root, bool additional) |
|
static void | organizeSubGroups (const Entry *root) |
|
static void | buildFileList (const Entry *root) |
|
template<class DefMutable > |
static void | addIncludeFile (DefMutable *cd, FileDef *ifd, const Entry *root) |
|
QCString | stripTemplateSpecifiers (const QCString &s) |
|
static Definition * | buildScopeFromQualifiedName (const QCString &name_, SrcLangExt lang, const TagInfo *tagInfo) |
|
std::unique_ptr< ArgumentList > | getTemplateArgumentsFromName (const QCString &name, const ArgumentLists &tArgLists) |
|
static ClassDef::CompoundType | convertToCompoundType (int section, uint64 specifier) |
|
static void | addClassToContext (const Entry *root) |
|
static void | buildClassList (const Entry *root) |
|
static void | buildClassDocList (const Entry *root) |
|
static void | addConceptToContext (const Entry *root) |
|
static void | buildConceptList (const Entry *root) |
|
static void | buildConceptDocList (const Entry *root) |
|
static void | resolveClassNestingRelations () |
|
void | distributeClassGroupRelations () |
|
static ClassDefMutable * | createTagLessInstance (const ClassDef *rootCd, const ClassDef *templ, const QCString &fieldName) |
|
static void | processTagLessClasses (const ClassDef *rootCd, const ClassDef *cd, ClassDefMutable *tagParentCd, const QCString &prefix, int count) |
| Look through the members of class cd and its public members. 更多...
|
|
static void | findTagLessClasses (std::vector< ClassDefMutable * > &candidates, const ClassDef *cd) |
|
static void | findTagLessClasses () |
|
static void | buildNamespaceList (const Entry *root) |
|
static const NamespaceDef * | findUsedNamespace (const LinkedRefMap< const NamespaceDef > &unl, const QCString &name) |
|
static void | findUsingDirectives (const Entry *root) |
|
static void | buildListOfUsingDecls (const Entry *root) |
|
static void | findUsingDeclarations (const Entry *root, bool filterPythonPackages) |
|
static void | findUsingDeclImports (const Entry *root) |
|
static void | findIncludedUsingDirectives () |
|
static MemberDef * | addVariableToClass (const Entry *root, ClassDefMutable *cd, MemberType mtype, const QCString &type, const QCString &name, const QCString &args, bool fromAnnScope, MemberDef *fromAnnMemb, Protection prot, Relationship related) |
|
static MemberDef * | addVariableToFile (const Entry *root, MemberType mtype, const QCString &scope, const QCString &type, const QCString &name, const QCString &args, bool fromAnnScope, MemberDef *fromAnnMemb) |
|
static int | findFunctionPtr (const std::string &type, SrcLangExt lang, int *pLength=0) |
|
static bool | isVarWithConstructor (const Entry *root) |
|
static void | transferFunctionDocumentation () |
|
static void | transferFunctionReferences () |
|
static void | transferRelatedFunctionDocumentation () |
|
static TemplateNameMap | getTemplateArgumentsInName (const ArgumentList &templateArguments, const std::string &name) |
|
static ClassDef * | findClassWithinClassContext (Definition *context, ClassDef *cd, const QCString &name) |
|
static void | findUsedClassesForClass (const Entry *root, Definition *context, ClassDefMutable *masterCd, ClassDefMutable *instanceCd, bool isArtificial, const std::unique_ptr< ArgumentList > &actualArgs=std::unique_ptr< ArgumentList >(), const TemplateNameMap &templateNames=TemplateNameMap()) |
|
static void | findBaseClassesForClass (const Entry *root, Definition *context, ClassDefMutable *masterCd, ClassDefMutable *instanceCd, FindBaseClassRelation_Mode mode, bool isArtificial, const std::unique_ptr< ArgumentList > &actualArgs=std::unique_ptr< ArgumentList >(), const TemplateNameMap &templateNames=TemplateNameMap()) |
|
static void | findTemplateInstanceRelation (const Entry *root, Definition *context, ClassDefMutable *templateClass, const QCString &templSpec, const TemplateNameMap &templateNames, bool isArtificial) |
|
static bool | isRecursiveBaseClass (const QCString &scope, const QCString &name) |
|
static int | findEndOfTemplate (const QCString &s, int startPos) |
|
static int | findTemplateSpecializationPosition (const QCString &name) |
|
static bool | isClassSection (const Entry *root) |
|
static void | findClassEntries (const Entry *root) |
|
static QCString | extractClassName (const Entry *root) |
|
static void | findInheritedTemplateInstances () |
|
static void | findUsedTemplateInstances () |
|
static void | computeClassRelations () |
|
static void | computeTemplateClassRelations () |
|
static void | computeMemberReferences () |
|
static void | addListReferences () |
|
static void | generateXRefPages () |
|
static const ClassDef * | findClassDefinition (FileDef *fd, NamespaceDef *nd, const QCString &scopeName) |
|
static bool | findGlobalMember (const Entry *root, const QCString &namespaceName, const QCString &type, const QCString &name, const QCString &tempArg, const QCString &, const QCString &decl, uint64 spec) |
|
static bool | isSpecialization (const ArgumentLists &srcTempArgLists, const ArgumentLists &dstTempArgLists) |
|
static bool | scopeIsTemplate (const Definition *d) |
|
static QCString | substituteTemplatesInString (const ArgumentLists &srcTempArgLists, const ArgumentLists &dstTempArgLists, const std::string &src) |
|
static void | substituteTemplatesInArgList (const ArgumentLists &srcTempArgLists, const ArgumentLists &dstTempArgLists, const ArgumentList &src, ArgumentList &dst) |
|
static void | addLocalObjCMethod (const Entry *root, const QCString &scopeName, const QCString &funcType, const QCString &funcName, const QCString &funcArgs, const QCString &exceptions, const QCString &funcDecl, uint64 spec) |
|
static void | addMemberFunction (const Entry *root, MemberName *mn, const QCString &scopeName, const QCString &namespaceName, const QCString &className, const QCString &funcTyp, const QCString &funcName, const QCString &funcArgs, const QCString &funcTempList, const QCString &exceptions, const QCString &type, const QCString &args, bool isFriend, uint64 spec, const QCString &relates, const QCString &funcDecl, bool overloaded, bool isFunc) |
|
static void | addMemberSpecialization (const Entry *root, MemberName *mn, ClassDefMutable *cd, const QCString &funcType, const QCString &funcName, const QCString &funcArgs, const QCString &funcDecl, const QCString &exceptions, uint64 spec) |
|
static void | addOverloaded (const Entry *root, MemberName *mn, const QCString &funcType, const QCString &funcName, const QCString &funcArgs, const QCString &funcDecl, const QCString &exceptions, uint64 spec) |
|
static void | filterMemberDocumentation (const Entry *root, const QCString &relates) |
|
static void | findMemberDocumentation (const Entry *root) |
|
static void | findObjCMethodDefinitions (const Entry *root) |
|
static void | findEnums (const Entry *root) |
|
static void | addEnumValuesToEnums (const Entry *root) |
|
static void | addEnumDocs (const Entry *root, MemberDefMutable *md) |
|
static void | findEnumDocumentation (const Entry *root) |
|
static void | findDEV (const MemberNameLinkedMap &mnsd) |
|
static void | findDocumentedEnumValues () |
|
static void | addMembersToIndex () |
|
static void | addToIndices () |
|
static void | vhdlCorrectMemberProperties () |
|
static void | computeMemberRelations () |
|
static void | createTemplateInstanceMembers () |
|
static void | mergeCategories () |
|
static void | buildCompleteMemberLists () |
|
static void | generateFileSources () |
|
static void | generateFileDocs () |
|
static void | addSourceReferences () |
|
static void | buildDefineList () |
|
static void | sortMemberLists () |
|
static bool | isSymbolHidden (const Definition *d) |
|
static void | computeTooltipTexts () |
|
static void | setAnonymousEnumType () |
|
static void | countMembers () |
|
static void | generateClassList (const ClassLinkedMap &classList) |
|
static void | generateClassDocs () |
|
static void | generateConceptDocs () |
|
static void | inheritDocumentation () |
|
static void | combineUsingRelations () |
|
static void | addMembersToMemberGroup () |
|
static void | distributeMemberGroupDocumentation () |
|
static void | findSectionsInDocumentation () |
|
static void | flushCachedTemplateRelations () |
|
static void | flushUnresolvedRelations () |
|
static void | findDefineDocumentation (Entry *root) |
|
static void | findDirDocumentation (const Entry *root) |
|
static void | buildPageList (Entry *root) |
|
static void | findMainPage (Entry *root) |
|
static void | findMainPageTagFiles (Entry *root) |
|
static void | computePageRelations (Entry *root) |
|
static void | checkPageRelations () |
|
static void | resolveUserReferences () |
|
static void | generatePageDocs () |
|
static void | buildExampleList (Entry *root) |
|
void | printNavTree (Entry *root, int indent) |
|
static void | generateExampleDocs () |
|
static void | generateGroupDocs () |
|
static void | generateNamespaceClassDocs (const ClassLinkedRefMap &classList) |
|
static void | generateNamespaceConceptDocs (const ConceptLinkedRefMap &conceptList) |
|
static void | generateNamespaceDocs () |
|
static void | generateConfigFile (const QCString &configFile, bool shortList, bool updateOnly=FALSE) |
|
static void | compareDoxyfile () |
|
static void | readTagFile (const std::shared_ptr< Entry > &root, const QCString &tagLine) |
|
static void | copyLatexStyleSheet () |
|
static void | copyStyleSheet () |
|
static void | copyLogo (const QCString &outputOption) |
|
static void | copyExtraFiles (const StringVector &files, const QCString &filesOption, const QCString &outputOption) |
|
static void | generateDiskNames () |
|
static std::unique_ptr< OutlineParserInterface > | getParserForFile (const QCString &fn) |
|
static std::shared_ptr< Entry > | parseFile (OutlineParserInterface &parser, FileDef *fd, const QCString &fn, ClangTUParser *clangParser, bool newTU) |
|
static void | parseFilesMultiThreading (const std::shared_ptr< Entry > &root) |
| parse the list of input files 更多...
|
|
static void | parseFilesSingleThreading (const std::shared_ptr< Entry > &root) |
| parse the list of input files 更多...
|
|
static std::string | resolveSymlink (const std::string &path) |
|
static StringUnorderedSet | g_pathsVisited (1009) |
|
static void | readDir (FileInfo *fi, FileNameLinkedMap *fnMap, StringUnorderedSet *exclSet, const StringVector *patList, const StringVector *exclPatList, StringVector *resultList, StringUnorderedSet *resultSet, bool errorIfNotExist, bool recursive, StringUnorderedSet *killSet, StringSet *paths) |
|
void | readFileOrDirectory (const QCString &s, FileNameLinkedMap *fnMap, StringUnorderedSet *exclSet, const StringVector *patList, const StringVector *exclPatList, StringVector *resultList, StringUnorderedSet *resultSet, bool recursive, bool errorIfNotExist, StringUnorderedSet *killSet, StringSet *paths) |
|
static void | expandAliases () |
|
static void | escapeAliases () |
|
void | readAliases () |
|
static void | dumpSymbol (TextStream &t, Definition *d) |
|
static void | dumpSymbolMap () |
|
static void | devUsage () |
|
static void | version (const bool extended) |
|
static void | usage (const QCString &name, const QCString &versionString) |
|
static const char * | getArg (int argc, char **argv, int &optInd) |
|
template<class T > |
std::function< std::unique_ptr< T >) > | make_parser_factory () |
|
void | initDoxygen () |
|
void | cleanUpDoxygen () |
|
static int | computeIdealCacheParam (size_t v) |
|
void | readConfiguration (int argc, char **argv) |
|
void | checkConfiguration () |
| check and resolve config options 更多...
|
|
void | adjustConfiguration () |
| adjust globals that depend on configuration settings. 更多...
|
|
static void | stopDoxygen (int) |
|
static void | writeTagFile () |
|
static void | exitDoxygen () |
|
static QCString | createOutputDirectory (const QCString &baseDirName, const QCString &formatDirName, const char *defaultDirName) |
|
static QCString | getQchFileName () |
|
void | searchInputFiles () |
|
void | parseInput () |
|
void | generateOutput () |
|
◆ HAS_SIGNALS
◆ FindBaseClassRelation_Mode
枚举值 |
---|
TemplateInstances | |
DocumentedOnly | |
Undocumented | |
在文件 doxygen.cpp 第 260 行定义.
◆ addClassToContext()
static void addClassToContext |
( |
const Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 961 行定义.
980 qualifiedName.
prepend(scName+
"::");
1051 if (fullName.
find(
"::")!=-1)
1058 std::unique_ptr<ArgumentList> tArgList;
1064 fullName=fullName.
left(i);
1074 std::unique_ptr<ClassDef>(
引用了 addClassToGroups(), addIncludeFile(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::artificial, Entry::bodyLine, Entry::brief, Entry::briefFile, Entry::briefLine, buildScopeFromQualifiedName(), Debug::Classes, Doxygen::classLinkedMap, Entry::COMPOUND_MASK, convertToCompoundType(), createClassDef(), Entry::doc, Entry::docFile, Entry::docLine, ArgumentList::empty(), Entry::endBodyLine, Entry::Enum, extractNamespaceName(), FALSE, Entry::fileDef(), TagInfo::fileName, Entry::fileName, QCString::find(), QCString::findRev(), Entry::ForwardDecl, getClassMutable(), getTemplateArgumentsFromName(), ClassDef::hasDocumentation(), Entry::hidden, Entry::id, FileDef::insertClass(), ClassDefMutable::insertUsedFile(), QCString::isEmpty(), ClassDef::isForwardDeclared(), Entry::lang, QCString::left(), leftScopeMatch(), Entry::metaData, QCString::mid(), Definition::name(), Entry::name, Entry::parent(), QCString::prepend(), Debug::print(), Entry::protection, qPrint(), Entry::req, ClassDef::requiresClause(), Entry::SCOPE_MASK, Entry::section, DefinitionMutable::setArtificial(), DefinitionMutable::setBodyDef(), DefinitionMutable::setBodySegment(), DefinitionMutable::setBriefDescription(), ClassDefMutable::setClassSpecifier(), ClassDefMutable::setCompoundType(), DefinitionMutable::setDefFile(), DefinitionMutable::setDocumentation(), ClassDefMutable::setFileDef(), DefinitionMutable::setHidden(), DefinitionMutable::setId(), ClassDefMutable::setIsStatic(), DefinitionMutable::setLanguage(), ClassDefMutable::setMetaData(), ClassDefMutable::setProtection(), DefinitionMutable::setRefItems(), ClassDefMutable::setRequiresClause(), ClassDefMutable::setSubGrouping(), ClassDefMutable::setTemplateArguments(), ClassDefMutable::setTypeConstraints(), Entry::sli, Entry::spec, SrcLangExt_CSharp, SrcLangExt_Java, Entry::startColumn, Entry::startLine, Entry::stat, stringToArgumentList(), stripTemplateSpecifiersFromScope(), Entry::subGrouping, Entry::tagInfo(), TagInfo::tagName, Entry::tArgLists, ClassDef::templateArguments(), toClassDefMutable(), TRUE , 以及 Entry::typeConstr.
被这些函数引用 buildClassDocList() , 以及 buildClassList().
◆ addConceptToContext()
static void addConceptToContext |
( |
const Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 1174 行定义.
1188 qualifiedName.
prepend(scName+
"::");
1199 qualifiedName=cd->
name();
1223 if (qualifiedName.
find(
"::")!=-1)
1235 std::unique_ptr<ConceptDef>(
1237 qualifiedName,tagName,refFileName))));
引用了 addConceptToGroups(), addIncludeFile(), DefinitionMutable::addInnerCompound(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::bodyLine, Entry::brief, Entry::briefFile, Entry::briefLine, buildScopeFromQualifiedName(), Debug::Classes, Doxygen::conceptLinkedMap, createConceptDef(), Definition::definitionType(), Entry::doc, Entry::docFile, Entry::docLine, Entry::endBodyLine, extractNamespaceName(), Entry::fileDef(), TagInfo::fileName, Entry::fileName, QCString::find(), findScopeFromQualifiedName(), getConceptMutable(), getTemplateArgumentsFromName(), Doxygen::globalScope, Entry::hidden, Entry::id, Entry::initializer, FileDef::insertConcept(), QCString::isEmpty(), Entry::lang, leftScopeMatch(), Definition::name(), Entry::name, Entry::parent(), QCString::prepend(), Debug::print(), qPrint(), Entry::SCOPE_MASK, Entry::section, DefinitionMutable::setBodyDef(), DefinitionMutable::setBodySegment(), DefinitionMutable::setBriefDescription(), DefinitionMutable::setDocumentation(), ConceptDefMutable::setFileDef(), DefinitionMutable::setHidden(), DefinitionMutable::setId(), ConceptDefMutable::setInitializer(), DefinitionMutable::setLanguage(), DefinitionMutable::setOuterScope(), DefinitionMutable::setRefItems(), ConceptDefMutable::setTemplateArguments(), Entry::sli, Entry::startColumn, Entry::startLine, TextStream::str(), Entry::tagInfo(), TagInfo::tagName, Entry::tArgLists, toConceptDefMutable(), toDefinitionMutable() , 以及 Definition::TypeNamespace.
被这些函数引用 buildConceptDocList() , 以及 buildConceptList().
◆ addEnumDocs()
在文件 doxygen.cpp 第 7408 行定义.
7436 if (gd==0 && !root->
groups.empty())
引用了 addMemberToGroups(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::doc, Entry::docFile, Entry::docLine, MemberDef::getGroupDef(), MemberDef::getMemberGroupId(), Entry::groups, Entry::inbodyDocs, Definition::inbodyDocumentation(), Entry::inbodyFile, Entry::inbodyLine, QCString::isEmpty(), Entry::mGrpId, Entry::name, Entry::parent(), Entry::proto, MemberDefMutable::setBriefDescription(), MemberDefMutable::setDocsForDefinition(), MemberDefMutable::setDocumentation(), MemberDefMutable::setInbodyDocumentation(), MemberDefMutable::setMemberGroupId(), DefinitionMutable::setRefItems() , 以及 Entry::sli.
被这些函数引用 findEnumDocumentation().
◆ addEnumValuesToEnums()
static void addEnumValuesToEnums |
( |
const Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 7182 行定义.
7192 bool isRelated=
FALSE;
7254 struct EnumValueInfo
7256 EnumValueInfo(
const QCString &n,std::unique_ptr<MemberDefMutable> &md) :
7257 name(n), member(std::move(md)) {}
7259 std::unique_ptr<MemberDefMutable> member;
7261 std::vector< EnumValueInfo > extraMembers;
7263 for (
const auto &imd : *mn)
7270 for (
const auto &e : root->
children())
7288 qualifiedName=
substitute(scope,
"::",
".")+
"."+qualifiedName;
7295 if (fileName.
isEmpty() && e->tagInfo())
7297 fileName = e->tagInfo()->tagName;
7300 fileName,e->startLine,e->startColumn,
7301 e->type,e->name,e->args,
QCString(),
7308 fmd->setNamespace(mnd);
7312 fmd->setTagInfo(e->tagInfo());
7313 fmd->setLanguage(e->lang);
7315 fmd->setDocumentation(e->doc,e->docFile,e->docLine);
7316 fmd->setBriefDescription(e->brief,e->briefFile,e->briefLine);
7317 fmd->addSectionsToDefinition(e->anchors);
7318 std::string
init = e->initializer.str();
7319 fmd->setInitializer(
init.c_str());
7320 fmd->setMaxInitLines(e->initLines);
7321 fmd->setMemberGroupId(e->mGrpId);
7322 fmd->setExplicitExternal(e->explicitExternal,fileName,e->startLine,e->startColumn);
7323 fmd->setRefItems(e->sli);
7326 fmd->setEnumScope(md,
TRUE);
7327 extraMembers.push_back(EnumValueInfo(e->name,fmd));
7335 if (!e->name.isEmpty() && (fmn=emnsd->
find(e->name)))
7338 for (
const auto &ifmd : *fmn)
7363 else if (isRelated && cd)
7392 for (
auto &e : extraMembers)
引用了 LinkedMap< T, Hash, KeyEqual, Map >::add(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::args, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::children(), createMemberDef(), Entry::doc, Entry::docFile, Entry::docLine, Entry::ENUM_SEC, Entry::explicitExternal, FALSE, Entry::fileDef(), Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), QCString::findRev(), Doxygen::functionNameLinkedMap, MemberDef::getClassDef(), getClassMutable(), MemberDef::getFileDef(), MemberDef::getNamespaceDef(), Definition::getOuterScope(), getResolvedNamespaceMutable(), Entry::id, Config::init(), Entry::initializer, Entry::initLines, MemberDefMutable::insertEnumField(), ClassDefMutable::insertMember(), Definition::isAnonymous(), QCString::isEmpty(), MemberDef::isEnumerate(), MemberDef::isEnumValue(), NamespaceDef::isLinkable(), Entry::lang, QCString::left(), QCString::length(), MemberDefMutable::makeRelated(), Member, Doxygen::memberNameLinkedMap, MemberType_EnumValue, mergeScopes(), Entry::metaData, Entry::mGrpId, Entry::name, Normal, Entry::parent(), Entry::protection, MemberName::push_back(), MemberDef::qualifiedName(), Entry::relates, QCString::right(), Entry::SCOPE_MASK, Entry::section, MemberDefMutable::setAnchor(), MemberDefMutable::setBriefDescription(), MemberDefMutable::setDocumentation(), MemberDefMutable::setEnumClassScope(), MemberDefMutable::setEnumScope(), MemberDefMutable::setExplicitExternal(), MemberDefMutable::setFileDef(), DefinitionMutable::setId(), MemberDefMutable::setInitializer(), DefinitionMutable::setLanguage(), MemberDefMutable::setMaxInitLines(), MemberDefMutable::setMemberClass(), MemberDefMutable::setMemberGroupId(), MemberDefMutable::setNamespace(), DefinitionMutable::setOuterScope(), DefinitionMutable::setRefItems(), MemberDefMutable::setTagInfo(), Entry::sli, Entry::spec, SrcLangExt_CSharp, SrcLangExt_Java, SrcLangExt_XML, Entry::startColumn, Entry::startLine, Entry::stat, TextStream::str(), Entry::Strong, substitute(), Entry::tagInfo(), TagInfo::tagName, toMemberDefMutable(), TRUE , 以及 Entry::type.
被这些函数引用 parseInput().
◆ addIncludeFile()
template<class DefMutable >
static void addIncludeFile |
( |
DefMutable * |
cd, |
|
|
FileDef * |
ifd, |
|
|
const Entry * |
root |
|
) |
| |
|
static |
在文件 doxygen.cpp 第 543 行定义.
556 if (!includeFile.
isEmpty() && includeFile.
at(0)==
'"')
559 includeFile=includeFile.
mid(1,includeFile.
length()-2);
561 else if (!includeFile.
isEmpty() && includeFile.
at(0)==
'<')
564 includeFile=includeFile.
mid(1,includeFile.
length()-2);
576 text.
sprintf(
"the name '%s' supplied as "
577 "the argument of the \\class, \\struct, \\union, or \\include command ",
582 text+=
"matches the following input files:\n";
584 text+=
"Please use a more specific name by "
585 "including a (larger) part of the path!";
589 text+=
"is not an input file";
593 else if (includeFile.
isEmpty() && ifd &&
607 if (iName.
at(0)==
'<') local=
FALSE;
608 else if (iName.
at(0)==
'"') local=
TRUE;
609 if (iName.
at(0)==
'"' || iName.
at(0)==
'<')
632 cd->setIncludeFile(0,iName,local,
TRUE);
引用了 FileDef::absFilePath(), QCString::at(), Entry::brief, Config_getBool, Config_getList, Entry::doc, FALSE, Entry::fileName, findFileDef(), FileDef::generateSourceFile(), guessSection(), Entry::HEADER_SEC, Entry::includeFile, Entry::includeName, Doxygen::inputNameLinkedMap, QCString::isEmpty(), QCString::length(), QCString::mid(), FileDef::name(), Private, Entry::protection, qPrint(), showFileDefMatches(), QCString::sprintf(), Entry::startLine, stripFromIncludePath(), QCString::stripWhiteSpace(), TRUE , 以及 warn().
被这些函数引用 addClassToContext() , 以及 addConceptToContext().
◆ addListReferences()
static void addListReferences |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 5029 行定义.
5042 for (
const auto &fd : *fn)
5044 fd->addListReferences();
5059 gd->addListReferences();
5064 QCString name = pd->getOutputFileBase();
5065 if (pd->getGroupDef())
5067 name = pd->getGroupDef()->getOutputFileBase();
5080 QCString name = dd->getOutputFileBase();
5089 name,dd->displayName(),
QCString(),0);
引用了 GroupDef::addListReferences(), NamespaceDefMutable::addListReferences(), FileDef::addListReferences(), ClassDefMutable::addListReferences(), addRefItem(), Doxygen::classLinkedMap, Doxygen::dirLinkedMap, Doxygen::groupLinkedMap, Doxygen::inputNameLinkedMap, Doxygen::namespaceLinkedMap, Doxygen::pageLinkedMap, theTranslator, toClassDefMutable(), toNamespaceDefMutable(), Translator::trDir(), Translator::trPage() , 以及 TRUE.
被这些函数引用 parseInput().
◆ addLocalObjCMethod()
在文件 doxygen.cpp 第 5626 行定义.
5641 funcType,funcName,funcArgs,exceptions,
5645 md->setLanguage(root->
lang);
5646 md->setId(root->
id);
5647 md->makeImplementationDetail();
5648 md->setMemberClass(cd);
5649 md->setDefinition(funcDecl);
5657 md->setDocsForDefinition(!root->
proto);
5659 md->addSectionsToDefinition(root->
anchors);
5663 md->setMemberSpecifiers(spec);
5664 md->setMemberGroupId(root->
mGrpId);
5667 md->setRefItems(root->
sli);
引用了 LinkedMap< T, Hash, KeyEqual, Map >::add(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::argList, Entry::bodyLine, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::callerGraph, Entry::callGraph, Config_getBool, createMemberDef(), Entry::doc, Entry::docFile, Entry::docLine, MemberDefMutable::enableCallerGraph(), MemberDefMutable::enableCallGraph(), MemberDefMutable::enableReferencedByRelation(), MemberDefMutable::enableReferencesRelation(), Entry::endBodyLine, Entry::fileDef(), Entry::fileName, Debug::FindMembers, getClassMutable(), Entry::id, Entry::inbodyDocs, Entry::inbodyFile, Entry::inbodyLine, ClassDefMutable::insertMember(), ClassDefMutable::insertUsedFile(), Entry::lang, MemberDefMutable::makeImplementationDetail(), Member, Doxygen::memberNameLinkedMap, MemberType_Function, Entry::metaData, Entry::mGrpId, Entry::name, Debug::print(), Entry::protection, Entry::proto, MemberName::push_back(), qPrint(), Entry::referencedByRelation, Entry::referencesRelation, DefinitionMutable::setBodyDef(), DefinitionMutable::setBodySegment(), MemberDefMutable::setBriefDescription(), MemberDefMutable::setDefinition(), MemberDefMutable::setDocsForDefinition(), MemberDefMutable::setDocumentation(), DefinitionMutable::setId(), MemberDefMutable::setInbodyDocumentation(), DefinitionMutable::setLanguage(), MemberDefMutable::setMemberClass(), MemberDefMutable::setMemberGroupId(), MemberDefMutable::setMemberSpecifiers(), MemberDefMutable::setPrototype(), DefinitionMutable::setRefItems(), MemberDefMutable::setTagInfo(), Entry::sli, Entry::startColumn, Entry::startLine, Entry::stat, Entry::tagInfo() , 以及 Entry::virt.
被这些函数引用 addMemberFunction() , 以及 findMember().
◆ addMemberDocs()
在文件 doxygen.cpp 第 5108 行定义.
5130 fullName = cd->
name();
5132 fullName = nd->
name();
5134 if (!fullName.
isEmpty()) fullName+=
"::";
5135 fullName+=md->
name();
5241 "member %s belongs to two different groups. The second "
5242 "one found here will be ignored.",
引用了 addMemberToGroups(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::argList, MemberDef::argumentList(), Entry::bodyLine, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::callerGraph, Entry::callGraph, Entry::doc, Entry::docFile, Entry::docLine, MemberDefMutable::enableCallerGraph(), MemberDefMutable::enableCallGraph(), MemberDefMutable::enableReferencedByRelation(), MemberDefMutable::enableReferencesRelation(), Entry::endBodyLine, Entry::fileDef(), Entry::fileName, MemberDef::getClassDefMutable(), MemberDef::getFileDef(), MemberDef::getMemberGroupId(), MemberDef::getNamespaceDef(), Definition::getOuterScope(), getOverloadDocs(), Definition::getStartBodyLine(), MemberDef::hasCallerGraph(), MemberDef::hasCallGraph(), MemberDef::hasReferencedByRelation(), MemberDef::hasReferencesRelation(), Entry::inbodyDocs, Definition::inbodyDocumentation(), Entry::inbodyFile, Entry::inbodyLine, MemberDef::initializer(), Entry::initializer, Entry::initLines, ClassDefMutable::insertUsedFile(), QCString::isEmpty(), matchArguments2(), mergeArguments(), MemberDefMutable::mergeMemberSpecifiers(), Entry::mGrpId, Definition::name(), Entry::name, Entry::parent(), Entry::proto, qPrint(), Entry::referencedByRelation, Entry::referencesRelation, Entry::req, MemberDef::requiresClause(), DefinitionMutable::setBodyDef(), DefinitionMutable::setBodySegment(), MemberDefMutable::setBriefDescription(), MemberDefMutable::setDefinition(), MemberDefMutable::setDocsForDefinition(), MemberDefMutable::setDocumentation(), MemberDefMutable::setInbodyDocumentation(), MemberDefMutable::setInitializer(), MemberDefMutable::setMaxInitLines(), MemberDefMutable::setMemberGroupId(), DefinitionMutable::setRefItems(), MemberDefMutable::setRequiresClause(), Entry::sli, Entry::startLine, TextStream::str(), QCString::stripPrefix(), TRUE , 以及 warn().
被这些函数引用 addMemberFunction(), addVariableToClass(), addVariableToFile(), findGlobalMember() , 以及 findMember().
◆ addMemberFunction()
static void addMemberFunction |
( |
const Entry * |
root, |
|
|
MemberName * |
mn, |
|
|
const QCString & |
scopeName, |
|
|
const QCString & |
namespaceName, |
|
|
const QCString & |
className, |
|
|
const QCString & |
funcTyp, |
|
|
const QCString & |
funcName, |
|
|
const QCString & |
funcArgs, |
|
|
const QCString & |
funcTempList, |
|
|
const QCString & |
exceptions, |
|
|
const QCString & |
type, |
|
|
const QCString & |
args, |
|
|
bool |
isFriend, |
|
|
uint64 |
spec, |
|
|
const QCString & |
relates, |
|
|
const QCString & |
funcDecl, |
|
|
bool |
overloaded, |
|
|
bool |
isFunc |
|
) |
| |
|
static |
在文件 doxygen.cpp 第 5680 行定义.
5702 bool memFound=
FALSE;
5703 for (
const auto &imd : *mn)
5706 if (md==0)
continue;
5708 if (cd==0)
continue;
5710 "3. member definition found, "
5711 "scope needed='%s' scope='%s' args='%s' fileName=%s\n",
5731 if (!namespaceName.
isEmpty()) fullScope.
prepend(namespaceName+
"::");
5732 if (fullScope==cd->
name())
5738 for (
const auto &emd : *enumMn)
5740 memFound = emd->isStrong() && md->
getEnumScope()==emd.get();
5746 if (memFound)
break;
5751 if (memFound)
break;
5765 "4. class definition %s found\n",
qPrint(cd->
name()));
5770 if (!templAl.
empty())
5780 bool substDone=
FALSE;
5787 if (declTemplArgs.size()>0 && declTemplArgs.size()==defTemplArgs.size())
5804 "5. matching '%s'<=>'%s' className=%s namespaceName=%s\n",
5831 "5b. Comparing return types '%s'<->'%s' #args %d<->%d\n",
5843 bool classOrMdIsTemplate = mdIsTemplate || classIsTemplate;
5844 bool rootIsTemplate = !root->
tArgLists.empty();
5846 if (!rootIsUserDoc &&
5847 (mdIsTemplate || rootIsTemplate) &&
5848 ((classOrMdIsTemplate && !rootIsTemplate) || (!classOrMdIsTemplate && rootIsTemplate))
5854 "5b. Comparing return types: template v.s. non-template\n");
5860 "6. match results of matchArguments2 = %d substDone=%d\n",matching,substDone);
5871 if (!funcTempList.
isEmpty() &&
5878 addMethodToClass(root,cd,type,md->
name(),args,isFriend,
5891 else if (cd && cd!=tcd)
5897 if (memFound)
break;
5899 if (count==0 && root->
parent() &&
5902 addLocalObjCMethod(root,scopeName,funcType,funcName,funcArgs,exceptions,funcDecl,spec);
5905 if (count==0 && !(isFriend && funcType==
"class"))
5911 for (
const auto &md : *mn)
5923 addMethodToClass(root,ccd,type,md->
name(),args,isFriend,
5932 "7. new candidate className=%s scope=%s args=%s exact match\n",
5940 "7. new candidate className=%s scope=%s args=%s no match\n",
5946 static bool strictProtoMatching =
Config_getBool(STRICT_PROTO_MATCHING);
5947 if (!strictProtoMatching)
5949 if (candidates==1 && ucd && umd)
5956 else if (candidates>1 && ecd && emd)
5967 if (noMatchCount>1) warnMsg+=
"uniquely ";
5968 warnMsg+=
"matching class member found for \n";
5972 warnMsg+=
" template ";
5981 warnMsg+=fullFuncDecl;
5986 warnMsg+=
"Possible candidates:\n";
5987 for (
const auto &md : *mn)
5996 warnMsg+=
"template ";
6008 warnMsg+=qScope+
"::"+md->
name();
引用了 addLocalObjCMethod(), addMemberDocs(), Entry::argList, argListToString(), MemberDef::argsString(), MemberDef::argumentList(), Config_getBool, ArgumentList::empty(), FALSE, Entry::fileDef(), Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), findClassDefinition(), Debug::FindMembers, QCString::findRev(), Entry::FUNCTION_SEC, MemberDef::getClassDef(), MemberDef::getClassDefMutable(), Definition::getDefFileName(), Definition::getDefLine(), MemberDef::getEnumScope(), MemberDef::getFileDef(), Definition::getLanguage(), getResolvedNamespace(), ClassDef::getTemplateParameterLists(), ArgumentList::hasParameters(), QCString::isEmpty(), MemberDef::isEnumValue(), isSpecialization(), MemberDef::isStatic(), MemberDef::isTypedef(), MemberDef::isVariable(), Entry::lang, QCString::left(), matchArguments2(), Entry::MEMBERDOC_SEC, Doxygen::memberNameLinkedMap, QCString::mid(), MemberDefMutable::moveArgumentList(), Definition::name(), Entry::OBJCIMPL_SEC, Entry::parent(), QCString::prepend(), Debug::print(), MemberDef::protection(), Entry::protection, ArgumentList::push_back(), qPrint(), ClassDef::qualifiedNameWithTemplateParameters(), rightScopeMatch(), scopeIsTemplate(), Entry::section, MemberDefMutable::setDefinitionTemplateParameterLists(), QCString::setNum(), ArgumentList::size(), SrcLangExt_ObjC, Entry::startLine, Entry::stat, stripAnonymousNamespaceScope(), QCString::stripPrefix(), stripTemplateSpecifiersFromScope(), substitute(), substituteTemplatesInArgList(), Entry::tArgLists, tempArgListToString(), MemberDef::templateArguments(), toMemberDefMutable(), TRUE, MemberDef::typeString(), Entry::virt, MemberDef::virtualness() , 以及 warn_simple().
被这些函数引用 findMember().
◆ addMemberSpecialization()
在文件 doxygen.cpp 第 6028 行定义.
6040 for (
const auto &md : *mn)
6042 if (md->getClassDef()==cd)
6054 funcType,funcName,funcArgs,exceptions,
6060 md->setLanguage(root->
lang);
6061 md->setId(root->
id);
6062 md->setMemberClass(cd);
6063 md->setTemplateSpecialization(
TRUE);
6065 md->setDefinition(funcDecl);
6073 md->setDocsForDefinition(!root->
proto);
6075 md->addSectionsToDefinition(root->
anchors);
6079 md->setMemberSpecifiers(spec);
6080 md->setMemberGroupId(root->
mGrpId);
6082 md->setRefItems(root->
sli);
6084 mn->push_back(std::move(md));
引用了 DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::argList, Entry::bodyLine, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::callerGraph, Entry::callGraph, createMemberDef(), Entry::doc, Entry::docFile, Entry::docLine, MemberDefMutable::enableCallerGraph(), MemberDefMutable::enableCallGraph(), MemberDefMutable::enableReferencedByRelation(), MemberDefMutable::enableReferencesRelation(), Entry::endBodyLine, Entry::fileDef(), Entry::fileName, MemberDef::getClassDef(), Entry::id, Entry::inbodyDocs, Entry::inbodyFile, Entry::inbodyLine, ClassDefMutable::insertMember(), Entry::lang, Member, MemberType_Function, Entry::metaData, Entry::mGrpId, MemberDef::protection(), Entry::protection, Entry::proto, Entry::referencedByRelation, Entry::referencesRelation, DefinitionMutable::setBodyDef(), DefinitionMutable::setBodySegment(), MemberDefMutable::setBriefDescription(), MemberDefMutable::setDefinition(), MemberDefMutable::setDocsForDefinition(), MemberDefMutable::setDocumentation(), DefinitionMutable::setId(), MemberDefMutable::setInbodyDocumentation(), DefinitionMutable::setLanguage(), MemberDefMutable::setMemberClass(), MemberDefMutable::setMemberGroupId(), MemberDefMutable::setMemberSpecifiers(), MemberDefMutable::setPrototype(), DefinitionMutable::setRefItems(), MemberDefMutable::setTagInfo(), MemberDefMutable::setTemplateSpecialization(), MemberDefMutable::setTypeConstraints(), Entry::sli, Entry::startColumn, Entry::startLine, Entry::stat, Entry::tagInfo(), TRUE, Entry::typeConstr , 以及 Entry::virt.
被这些函数引用 findMember().
◆ addMembersToIndex()
static void addMembersToIndex |
( |
| ) |
|
|
static |
◆ addMembersToMemberGroup()
static void addMembersToMemberGroup |
( |
| ) |
|
|
static |
◆ addOverloaded()
在文件 doxygen.cpp 第 6089 行定义.
6096 bool sameClass=
false;
6101 [](
const auto &md1,
const auto &md2)
6102 { return md1->getClassDef()->name()==md2->getClassDef()->name(); });
6114 std::unique_ptr<ArgumentList> tArgList =
6119 funcType,funcName,funcArgs,exceptions,
6123 md->setLanguage(root->
lang);
6124 md->setId(root->
id);
6126 md->setMemberClass(cd);
6127 md->setDefinition(funcDecl);
6138 md->setDocsForDefinition(!root->
proto);
6140 md->addSectionsToDefinition(root->
anchors);
6144 md->setMemberSpecifiers(spec);
6145 md->setMemberGroupId(root->
mGrpId);
6148 md->setRefItems(root->
sli);
引用了 DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::argList, MemberName::begin(), Entry::bodyLine, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::callerGraph, Entry::callGraph, createMemberDef(), DCOP, Entry::doc, Entry::docFile, Entry::docLine, MemberDefMutable::enableCallerGraph(), MemberDefMutable::enableCallGraph(), MemberDefMutable::enableReferencedByRelation(), MemberDefMutable::enableReferencesRelation(), MemberName::end(), Entry::endBodyLine, Entry::fileDef(), Entry::fileName, MemberName::front(), getOverloadDocs(), getTemplateArgumentsFromName(), Entry::id, Entry::inbodyDocs, Entry::inbodyFile, Entry::inbodyLine, ClassDefMutable::insertMember(), ClassDefMutable::insertUsedFile(), Entry::lang, MemberType_DCOP, MemberType_Function, MemberType_Signal, MemberType_Slot, Entry::metaData, Entry::mGrpId, Entry::mtype, Definition::name(), Entry::protection, Entry::proto, MemberName::push_back(), Entry::referencedByRelation, Entry::referencesRelation, Related, DefinitionMutable::setBodyDef(), DefinitionMutable::setBodySegment(), MemberDefMutable::setBriefDescription(), MemberDefMutable::setDefinition(), MemberDefMutable::setDocsForDefinition(), MemberDefMutable::setDocumentation(), DefinitionMutable::setId(), MemberDefMutable::setInbodyDocumentation(), DefinitionMutable::setLanguage(), MemberDefMutable::setMemberClass(), MemberDefMutable::setMemberGroupId(), MemberDefMutable::setMemberSpecifiers(), MemberDefMutable::setPrototype(), DefinitionMutable::setRefItems(), MemberDefMutable::setTagInfo(), MemberDefMutable::setTypeConstraints(), Signal, MemberName::size(), Entry::sli, Slot, Entry::startColumn, Entry::startLine, Entry::stat, Entry::tagInfo(), Entry::tArgLists, Entry::typeConstr , 以及 Entry::virt.
被这些函数引用 findMember().
◆ addPageToContext()
在文件 doxygen.cpp 第 284 行定义.
294 scope+=
"::"+pd->
name();
引用了 findScopeFromQualifiedName(), Doxygen::globalScope, Definition::name(), Entry::name, Entry::PACKAGEDOC_SEC, Entry::parent(), Entry::section, PageDef::setPageScope(), stripAnonymousNamespaceScope(), substitute() , 以及 Entry::tagInfo().
被这些函数引用 addRelatedPage() , 以及 findMainPage().
◆ addRelatedPage()
static void addRelatedPage |
( |
Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 303 行定义.
引用了 addPageToContext(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::args, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::doc, Entry::docFile, Entry::docLine, FALSE, LinkedMap< T, Hash, KeyEqual, Map >::find(), Doxygen::groupLinkedMap, Grouping::groupname, Entry::groups, Entry::inbodyDocs, QCString::isEmpty(), Entry::lang, Entry::localToc, Entry::name, DefinitionMutable::setBriefDescription(), PageDef::setLocalToc(), Entry::sli, Entry::startLine , 以及 Entry::tagInfo().
被这些函数引用 buildPageList(), CitationManager::generatePage() , 以及 RefList::generatePage().
◆ addSourceReferences()
static void addSourceReferences |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 8215 行定义.
8221 if (fd && cd->isLinkableInProject() && cd->getStartDefLine()!=-1)
8223 const_cast<FileDef*
>(fd)->addSourceRef(cd->getStartDefLine(),cd.get(),0);
8230 if (fd && cd->isLinkableInProject() && cd->getStartDefLine()!=-1)
8232 const_cast<FileDef*
>(fd)->addSourceRef(cd->getStartDefLine(),cd.get(),0);
8239 if (fd && nd->isLinkableInProject() && nd->getStartDefLine()!=-1)
8241 const_cast<FileDef*
>(fd)->addSourceRef(nd->getStartDefLine(),nd.get(),0);
8248 for (
const auto &md : *mn)
8256 md->getStartDefLine()!=-1 &&
8257 md->isLinkableInProject() &&
8263 const_cast<FileDef*
>(fd)->addSourceRef(md->getStartDefLine(),md->getOuterScope(),md.get());
8269 for (
const auto &md : *mn)
8278 md->getStartDefLine()!=-1 &&
8279 md->isLinkableInProject() &&
8285 const_cast<FileDef*
>(fd)->addSourceRef(md->getStartDefLine(),md->getOuterScope(),md.get());
引用了 Doxygen::classLinkedMap, Doxygen::conceptLinkedMap, Doxygen::functionNameLinkedMap, FileDef::generateSourceFile(), Definition::getBodyDef(), Definition::getOuterScope(), Definition::getStartDefLine(), NamespaceDef::isLinkableInProject(), MemberDef::isLinkableInProject(), ClassDef::isLinkableInProject(), Doxygen::memberNameLinkedMap, Doxygen::namespaceLinkedMap , 以及 Doxygen::parseSourcesNeeded.
被这些函数引用 parseInput().
◆ addToIndices()
static void addToIndices |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 7608 行定义.
7612 if (cd->isLinkableInProject())
7625 if (cd->isLinkableInProject())
7638 if (nd->isLinkableInProject())
7651 for (
const auto &fd : *fn)
7663 if (gd->isLinkableInProject())
7669 std::string title = gd->groupTitle().str();
7670 static const reg::Ex re(R
"(\a[\w-]*)");
7673 for (; it!=
end ; ++it)
7675 const auto &
match = *it;
7676 std::string matchStr =
match.str();
7685 if (pd->isLinkableInProject())
7702 if (md->getClassDef())
7706 if (md->getNamespaceDef())
7717 if (md->getGroupDef()) scope = md->getGroupDef();
7718 else if (md->getClassDef()) scope = md->getClassDef();
7719 else if (md->getNamespaceDef()) scope = md->getNamespaceDef();
7720 else if (md->getFileDef()) scope = md->getFileDef();
7726 if (md->isLinkableInProject())
7728 if (!(md->isEnumerate() && md->isAnonymous()))
7733 if (md->isEnumerate())
7735 for (
const auto &fmd : md->enumFieldList())
7748 for (
const auto &md : *mn)
7750 addMemberToIndices(md.get());
7757 for (
const auto &md : *mn)
7759 addMemberToIndices(md.get());
引用了 IndexList::addIndexItem(), addMemberToSearchIndex(), SearchIndexIntf::addWord(), GroupDef::anchor(), NamespaceDef::anchor(), MemberDef::anchor(), FileDef::anchor(), ClassDef::anchor(), Doxygen::classLinkedMap, Doxygen::conceptLinkedMap, NamespaceDef::displayName(), ClassDef::displayName(), end(), MemberDef::enumFieldList(), FALSE, filterTitle(), Doxygen::functionNameLinkedMap, MemberDef::getClassDef(), MemberDef::getFileDef(), MemberDef::getGroupDef(), MemberDef::getNamespaceDef(), Doxygen::groupLinkedMap, GroupDef::groupTitle(), Doxygen::indexList, Doxygen::inputNameLinkedMap, Definition::isAnonymous(), MemberDef::isEnumerate(), NamespaceDef::isLinkableInProject(), GroupDef::isLinkableInProject(), FileDef::isLinkableInProject(), MemberDef::isLinkableInProject(), ClassDef::isLinkableInProject(), NamespaceDef::localName(), Definition::localName(), reg::match(), Doxygen::memberNameLinkedMap, Doxygen::namespaceLinkedMap, Doxygen::pageLinkedMap, MemberDef::qualifiedName(), Doxygen::searchIndex, SearchIndexIntf::setCurrentDoc(), QCString::str() , 以及 TRUE.
被这些函数引用 parseInput().
◆ addVariableToClass()
在文件 doxygen.cpp 第 2186 行定义.
2207 " class variable:\n"
2208 " '%s' '%s'::'%s' '%s' prot=%d ann=%d init='%s'\n",
2225 def=
"using "+name+
" = "+type.
mid(7);
2229 def=type+
" "+name+args;
2236 def=
"using "+qualScope+scopeSeparator+name+
" = "+type.
mid(7);
2240 def=type+
" "+qualScope+scopeSeparator+name+args;
2252 def=qualScope+scopeSeparator+name+args;
2263 for (
const auto &imd : *mn)
引用了 LinkedMap< T, Hash, KeyEqual, Map >::add(), addMemberDocs(), addMemberToGroups(), Entry::Alias, Entry::anchors, Entry::artificial, Entry::bitfields, Entry::bodyLine, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::callerGraph, Entry::callGraph, Config_getBool, createMemberDef(), Entry::doc, Entry::docFile, Entry::docLine, Entry::endBodyLine, Entry::exception, FALSE, Entry::fileDef(), Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), MemberDef::getClassDef(), Definition::getLanguage(), Entry::hidden, Entry::id, Entry::inbodyDocs, Entry::inbodyFile, Entry::inbodyLine, Config::init(), Entry::initializer, Entry::initLines, ClassDefMutable::insertMember(), ClassDefMutable::insertUsedFile(), QCString::isEmpty(), Entry::lang, Entry::markAsProcessed(), Doxygen::memberNameLinkedMap, MemberDef::memberType(), MemberType_Friend, MemberType_Property, MemberType_Variable, Entry::metaData, Entry::mGrpId, QCString::mid(), Entry::mtype, Normal, Debug::print(), Property, Entry::protection, MemberName::push_back(), qPrint(), ClassDef::qualifiedNameWithTemplateParameters(), Entry::read, ClassDefMutable::reclassifyMember(), Entry::referencedByRelation, Entry::referencesRelation, removeRedundantWhiteSpace(), MemberDefMutable::setProtection(), MemberDefMutable::setTagInfo(), Entry::sli, Entry::spec, SrcLangExt_CSharp, SrcLangExt_Java, SrcLangExt_ObjC, Entry::startColumn, Entry::startLine, Entry::stat, TextStream::str(), QCString::stripPrefix(), substitute(), Entry::tagInfo(), TagInfo::tagName, Entry::tArgLists, toMemberDefMutable(), MemberDef::typeString(), Debug::Variables , 以及 Entry::write.
◆ addVariableToFile()
在文件 doxygen.cpp 第 2351 行定义.
2363 " global variable:\n"
2364 " file='%s' type='%s' scope='%s' name='%s' args='%s' prot=`%d mtype=%d lang=%d\n",
2382 if (ttype.
left(7)==
"struct " || ttype.
left(6)==
"union ")
2386 static const reg::Ex re(R
"(\a\w*)");
2388 std::string typ = ttype.str();
2410 if (scope.
find(
'@')!=-1)
return 0;
2428 def=
"using "+nd->
name()+sep+name+
" = "+type;
2432 def=type+
" "+nd->
name()+sep+name+args;
2437 def=nd->
name()+sep+name+args;
2444 if (name.
at(0)==
'@')
2452 def=
"using "+root->
name+
" = "+type.
mid(7);
2456 def=type+
" "+name+args;
2477 for (
const auto &imd : *mn)
2494 bool staticsInDifferentFiles =
2500 !staticsInDifferentFiles
2534 " new variable, nd=%s tagInfo=%p!\n",nd?
qPrint(nd->
name()):
"<global>",root->
tagInfo());
引用了 FileDef::absFilePath(), LinkedMap< T, Hash, KeyEqual, Map >::add(), addMemberDocs(), addMemberToGroups(), Entry::Alias, Entry::anchors, Entry::argList, MemberDef::argsString(), QCString::at(), Entry::bodyLine, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::callerGraph, Entry::callGraph, Config_getBool, createMemberDef(), Entry::doc, Entry::docFile, Entry::docLine, Entry::endBodyLine, Entry::explicitExternal, FALSE, Entry::fileDef(), Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), QCString::find(), Doxygen::functionNameLinkedMap, getClassMutable(), Definition::getDefColumn(), Definition::getDefFileName(), Definition::getDefLine(), MemberDef::getFileDef(), Definition::getLanguage(), getLanguageSpecificSeparator(), MemberDef::getNamespaceDef(), Definition::getOuterScope(), getResolvedNamespaceMutable(), Entry::id, Entry::inbodyDocs, Entry::inbodyFile, Entry::inbodyLine, Config::init(), Entry::initializer, Entry::initLines, NamespaceDefMutable::insertMember(), FileDef::insertMember(), Definition::isAnonymous(), MemberDef::isDefine(), QCString::isEmpty(), MemberDef::isEnumerate(), MemberDef::isExternal(), MemberDef::isStatic(), Entry::lang, QCString::left(), Entry::markAsProcessed(), reg::match(), Member, MemberType_Typedef, Entry::metaData, Entry::mGrpId, QCString::mid(), Definition::name(), Entry::name, Normal, Debug::print(), Entry::protection, MemberName::push_back(), qPrint(), Entry::referencedByRelation, Entry::referencesRelation, reg::search(), DefinitionMutable::setBriefDescription(), ClassDefMutable::setClassName(), MemberDefMutable::setDeclFile(), DefinitionMutable::setDocumentation(), MemberDefMutable::setExplicitExternal(), DefinitionMutable::setRefItems(), MemberDefMutable::setTagInfo(), Entry::sli, Entry::spec, SrcLangExt_PHP, Entry::startColumn, Entry::startLine, Entry::stat, TextStream::str(), QCString::str(), QCString::stripPrefix(), Entry::tagInfo(), TagInfo::tagName, Entry::tArgLists, toMemberDefMutable() , 以及 Debug::Variables.
◆ adjustConfiguration()
void adjustConfiguration |
( |
| ) |
|
adjust globals that depend on configuration settings.
在文件 doxygen.cpp 第 11153 行定义.
11180 for (
const auto &mapping : extMaps)
11182 QCString mapStr = mapping.c_str();
11183 int i=mapStr.
find(
'=');
11199 err(
"Failed to map file extension '%s' to unsupported language '%s'.\n"
11200 "Check the EXTENSION_MAPPING setting in the config file.\n",
11205 msg(
"Adding custom extension mapping: '%s' will be treated as language '%s'\n",
11213 for (
const auto &s : expandAsDefinedList)
引用了 QCString::at(), Config_getBool, Config_getEnum, Config_getInt, Config_getList, Config_getString, createNamespaceDef(), Doxygen::diaFileNameLinkedMap, Doxygen::dotFileNameLinkedMap, err(), Doxygen::exampleNameLinkedMap, Doxygen::expandAsDefinedSet, QCString::find(), Doxygen::globalScope, Doxygen::htmlFileExtension, Doxygen::imageNameLinkedMap, Doxygen::includeNameLinkedMap, Doxygen::inputNameLinkedMap, QCString::isEmpty(), QCString::left(), QCString::lower(), QCString::mid(), Doxygen::mscFileNameLinkedMap, msg(), Doxygen::parseSourcesNeeded, qPrint(), readAliases(), QCString::resize(), setTranslator(), Doxygen::spaces, QCString::stripWhiteSpace() , 以及 updateLanguageMapping().
被这些函数引用 main().
◆ buildClassDocList()
static void buildClassDocList |
( |
const Entry * |
root | ) |
|
|
static |
◆ buildClassList()
static void buildClassList |
( |
const Entry * |
root | ) |
|
|
static |
◆ buildCompleteMemberLists()
static void buildCompleteMemberLists |
( |
| ) |
|
|
static |
◆ buildConceptDocList()
static void buildConceptDocList |
( |
const Entry * |
root | ) |
|
|
static |
◆ buildConceptList()
static void buildConceptList |
( |
const Entry * |
root | ) |
|
|
static |
◆ buildDefineList()
static void buildDefineList |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 8294 行定义.
8301 for (
const auto &def : it->second)
8304 def.fileName,def.lineNr,def.columnNr,
8305 "#define",def.name,def.args,
QCString(),
8309 if (!def.args.isEmpty())
8313 md->setInitializer(def.definition);
8314 md->setFileDef(def.fileDef);
8315 md->setDefinition(
"#define "+def.name);
8320 def.fileDef->insertMember(md.get());
引用了 LinkedMap< T, Hash, KeyEqual, Map >::add(), createMemberDef(), end(), FALSE, Doxygen::functionNameLinkedMap, g_inputFiles, QCString::isEmpty(), Doxygen::macroDefinitions, Member, MemberType_Define, MemberDefMutable::moveArgumentList(), Normal, Public, MemberName::push_back(), MemberDefMutable::setDefinition(), MemberDefMutable::setFileDef(), MemberDefMutable::setInitializer(), SrcLangExt_Cpp , 以及 stringToArgumentList().
被这些函数引用 parseInput().
◆ buildExampleList()
static void buildExampleList |
( |
Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 9286 行定义.
9293 "Example %s was already documented. Ignoring "
9294 "documentation found here.",
9301 std::unique_ptr<PageDef>(
引用了 LinkedMap< T, Hash, KeyEqual, Map >::add(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::args, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::children(), convertNameToFile(), createPageDef(), Entry::doc, Entry::EXAMPLE_LINENO_SEC, Entry::EXAMPLE_SEC, Doxygen::exampleLinkedMap, FALSE, Entry::fileName, Entry::inbodyDocs, QCString::isEmpty(), Entry::lang, Definition::name(), Entry::name, qPrint(), Entry::section, DefinitionMutable::setBriefDescription(), PageDef::setFileName(), DefinitionMutable::setLanguage(), PageDef::setShowLineNo(), Entry::startLine, TRUE , 以及 warn().
被这些函数引用 parseInput().
◆ buildFileList()
static void buildFileList |
( |
const Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 470 行定义.
481 int save_ambig = ambig;
492 fn = fn.
left(newIndex)+
"/"+root->
name;
495 if (!fd) ambig = save_ambig;
522 text.sprintf(
"the name '%s' supplied as "
523 "the argument in the \\file statement ",
527 text+=
"matches the following input files:\n";
529 text+=
"Please use a more specific name by "
530 "including a (larger) part of the path!";
534 text+=
"is not an input file";
引用了 GroupDef::addFile(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::children(), Config_getBool, Entry::doc, Entry::docFile, Entry::docLine, FALSE, Entry::FILE_MASK, Entry::FILEDOC_SEC, Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), findFileDef(), QCString::findRev(), Doxygen::groupLinkedMap, Grouping::groupname, Entry::groups, Doxygen::inputNameLinkedMap, QCString::isEmpty(), QCString::left(), DefinitionMutable::makePartOfGroup(), Entry::name, qPrint(), Entry::section, DefinitionMutable::setBriefDescription(), DefinitionMutable::setDocumentation(), DefinitionMutable::setRefItems(), showFileDefMatches(), Entry::sli, QCString::sprintf(), Entry::startLine, Entry::tagInfo() , 以及 warn().
被这些函数引用 parseInput().
◆ buildGroupList()
static void buildGroupList |
( |
const Entry * |
root | ) |
|
|
static |
◆ buildGroupListFiltered()
static void buildGroupListFiltered |
( |
const Entry * |
root, |
|
|
bool |
additional, |
|
|
bool |
includeExternal |
|
) |
| |
|
static |
在文件 doxygen.cpp 第 339 行定义.
342 ((!includeExternal && root->
tagInfo()==0) ||
343 ( includeExternal && root->
tagInfo()!=0))
362 "group %s: ignoring title \"%s\" that does not match old title \"%s\"\n",
377 std::unique_ptr<GroupDef>(
384 std::unique_ptr<GroupDef>(
引用了 LinkedMap< T, Hash, KeyEqual, Map >::add(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::children(), createGroupDef(), Entry::doc, Entry::docFile, Entry::docLine, FALSE, TagInfo::fileName, Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), Entry::GROUPDOC_NORMAL, Entry::GROUPDOC_SEC, Entry::groupDocType, Doxygen::groupLinkedMap, GroupDef::groupTitle(), GroupDef::hasGroupTitle(), Entry::inbodyDocs, Entry::inbodyFile, Entry::inbodyLine, QCString::isEmpty(), Entry::lang, QCString::length(), Entry::name, qPrint(), Entry::section, DefinitionMutable::setBriefDescription(), DefinitionMutable::setDocumentation(), GroupDef::setGroupTitle(), DefinitionMutable::setInbodyDocumentation(), DefinitionMutable::setLanguage(), DefinitionMutable::setReference(), DefinitionMutable::setRefItems(), Entry::sli, Entry::startLine, Entry::tagInfo(), TagInfo::tagName, Entry::type , 以及 warn().
被这些函数引用 buildGroupList().
◆ buildListOfUsingDecls()
static void buildListOfUsingDecls |
( |
const Entry * |
root | ) |
|
|
static |
◆ buildNamespaceList()
static void buildNamespaceList |
( |
const Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 1648 行定义.
1721 std::unique_ptr<NamespaceDef>(
1793 aliasName,std::unique_ptr<NamespaceDef>(aliasNd));
引用了 LinkedMap< T, Hash, KeyEqual, Map >::add(), DefinitionMutable::addInnerCompound(), addNamespaceToGroups(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::artificial, Entry::bodyLine, Entry::brief, Entry::briefFile, Entry::briefLine, buildScopeFromQualifiedName(), Entry::children(), createNamespaceDef(), createNamespaceDefAlias(), Definition::definitionType(), Entry::doc, Entry::docFile, Entry::docLine, Entry::endBodyLine, FALSE, Entry::fileDef(), TagInfo::fileName, Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), findScopeFromQualifiedName(), Definition::getLanguage(), Definition::getOuterScope(), Doxygen::globalScope, Entry::hidden, Entry::id, Entry::Inline, FileDef::insertNamespace(), NamespaceDefMutable::insertUsedFile(), Definition::isArtificial(), QCString::isEmpty(), NamespaceDef::isInline(), Entry::lang, Entry::metaData, Definition::name(), Entry::name, Entry::NAMESPACE_SEC, Entry::NAMESPACEDOC_SEC, Doxygen::namespaceLinkedMap, Entry::PACKAGEDOC_SEC, Entry::Published, Entry::section, DefinitionMutable::setArtificial(), DefinitionMutable::setBodyDef(), DefinitionMutable::setBodySegment(), DefinitionMutable::setBriefDescription(), DefinitionMutable::setDefFile(), DefinitionMutable::setDocumentation(), NamespaceDefMutable::setFileName(), DefinitionMutable::setHidden(), DefinitionMutable::setId(), NamespaceDefMutable::setInline(), DefinitionMutable::setLanguage(), NamespaceDefMutable::setMetaData(), DefinitionMutable::setName(), DefinitionMutable::setOuterScope(), DefinitionMutable::setReference(), DefinitionMutable::setRefItems(), Entry::sli, Entry::spec, SrcLangExt_Unknown, Entry::startColumn, Entry::startLine, stripAnonymousNamespaceScope(), substitute(), Entry::tagInfo(), TagInfo::tagName, toDefinitionMutable(), toNamespaceDef(), toNamespaceDefMutable(), Entry::type , 以及 Definition::TypeNamespace.
被这些函数引用 parseInput().
◆ buildPageList()
static void buildPageList |
( |
Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 9036 行定义.
引用了 addRefItem(), addRelatedPage(), Entry::args, Entry::children(), QCString::isEmpty(), Entry::MAINPAGEDOC_SEC, Entry::name, Entry::PAGEDOC_SEC, Entry::section, Entry::sli, QCString::stripWhiteSpace(), theTranslator , 以及 Translator::trMainPage().
被这些函数引用 parseInput().
◆ buildScopeFromQualifiedName()
returns the Definition object belonging to the first level levels of full qualified name name. Creates an artificial scope if the scope is not found and set the parent/child scope relation if the scope is found.
在文件 doxygen.cpp 第 723 行定义.
735 if (idx==-1)
return prevScope;
737 if (nsName.
isEmpty())
return prevScope;
738 if (!fullScope.
isEmpty()) fullScope+=
"::";
743 if (nd==0) cd =
getClass(fullScope);
748 else if (nd==0 && cd==0 && fullScope.
find(
'<')==-1)
755 std::unique_ptr<NamespaceDef>(
757 "[generated]",1,1,fullScope,
775 if (prevScopeMutable)
引用了 DefinitionMutable::addInnerCompound(), QCString::contains(), createNamespaceDef(), TagInfo::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), QCString::find(), getClass(), getScopeFragment(), Doxygen::globalScope, QCString::isEmpty(), QCString::mid(), Doxygen::namespaceLinkedMap, DefinitionMutable::setArtificial(), DefinitionMutable::setLanguage(), DefinitionMutable::setOuterScope(), stripTemplateSpecifiers(), TagInfo::tagName, toDefinition(), toDefinitionMutable(), toNamespaceDefMutable() , 以及 TRUE.
被这些函数引用 addClassToContext(), addConceptToContext(), buildNamespaceList(), findClassRelation(), findScopeFromQualifiedName() , 以及 resolveClassNestingRelations().
◆ checkConfiguration()
void checkConfiguration |
( |
| ) |
|
◆ checkPageRelations()
static void checkPageRelations |
( |
| ) |
|
|
static |
◆ cleanUpDoxygen()
在文件 doxygen.cpp 第 10694 行定义.
引用了 FormulaManager::clear(), LinkedMap< T, Hash, KeyEqual, Map >::clear(), DotManager::deleteInstance(), Doxygen::diaFileNameLinkedMap, Doxygen::dirLinkedMap, Doxygen::dotFileNameLinkedMap, Doxygen::exampleLinkedMap, Doxygen::exampleNameLinkedMap, Mappers::freeMappers(), Doxygen::functionNameLinkedMap, g_outputList, Doxygen::globalScope, Doxygen::groupLinkedMap, Doxygen::imageNameLinkedMap, Doxygen::includeNameLinkedMap, Doxygen::indexList, Doxygen::inputNameLinkedMap, FormulaManager::instance(), SectionManager::instance(), Doxygen::mainPage, Doxygen::memberNameLinkedMap, Doxygen::mscFileNameLinkedMap, Doxygen::namespaceLinkedMap, Doxygen::pageLinkedMap, Doxygen::parserManager, Doxygen::symbolMap , 以及 theTranslator.
被这些函数引用 createOutputDirectory(), generateOutput(), parseInput(), readConfiguration() , 以及 stopDoxygen().
◆ clearAll()
在文件 doxygen.cpp 第 179 行定义.
引用了 Doxygen::classLinkedMap, CitationManager::clear(), FormulaManager::clear(), LinkedMap< T, Hash, KeyEqual, Map >::clear(), Doxygen::conceptLinkedMap, Doxygen::diaFileNameLinkedMap, Doxygen::dotFileNameLinkedMap, Doxygen::exampleLinkedMap, Doxygen::exampleNameLinkedMap, g_inputFiles, Doxygen::hiddenClassLinkedMap, Doxygen::imageNameLinkedMap, Doxygen::includeNameLinkedMap, Doxygen::inputNameLinkedMap, CitationManager::instance(), FormulaManager::instance(), SectionManager::instance(), Doxygen::mainPage, Doxygen::mscFileNameLinkedMap, Doxygen::namespaceLinkedMap, Doxygen::pageLinkedMap , 以及 Doxygen::tagDestinationMap.
◆ combineUsingRelations()
static void combineUsingRelations |
( |
| ) |
|
|
static |
◆ compareDoxyfile()
static void compareDoxyfile |
( |
| ) |
|
|
static |
◆ computeClassRelations()
static void computeClassRelations |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 4895 行定义.
4899 const Entry *root = kv.second;
4910 bName.
right(2)!=
"::")
4920 "Compound %s is not documented.",
引用了 Debug::Classes, Config_getBool, DocumentedOnly, extractClassName(), FALSE, Entry::fileName, QCString::find(), findBaseClassesForClass(), g_classEntries, getClassMutable(), guessSection(), ClassDef::hasDocumentation(), Entry::HEADER_SEC, QCString::isEmpty(), ClassDef::isReference(), ClassDef::memberNameInfoLinkedMap(), Entry::name, Debug::print(), Entry::protection, protectionLevelVisible(), qPrint(), QCString::right(), LinkedMap< T, Hash, KeyEqual, Map >::size(), Entry::startLine , 以及 warn_undoc().
被这些函数引用 parseInput().
◆ computeIdealCacheParam()
static int computeIdealCacheParam |
( |
size_t |
v | ) |
|
|
static |
◆ computeMemberReferences()
static void computeMemberReferences |
( |
| ) |
|
|
static |
◆ computeMemberRelations()
static void computeMemberRelations |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 7802 行定义.
7807 for (
const auto &imd : *mn)
7813 for (
const auto &ibmd : *mn)
7826 if (bmcd && mcd && bmcd!=mcd &&
引用了 MemberDef::argumentList(), ClassDef::baseClasses(), ClassDef::compoundType(), MemberDef::getClassDef(), MemberDef::getFileDef(), Definition::getLanguage(), Definition::getOuterScope(), MemberDefMutable::insertReimplementedBy(), ClassDef::Interface, ClassDef::isBaseClass(), MemberDef::isFunction(), ClassDef::isLinkable(), matchArguments2(), Doxygen::memberNameLinkedMap, minClassDistance(), Normal, ClassDef::Protocol, MemberDef::reimplements(), MemberDefMutable::setReimplements(), SrcLangExt_Java, SrcLangExt_PHP, SrcLangExt_Python, toMemberDefMutable(), TRUE , 以及 MemberDef::virtualness().
被这些函数引用 parseInput().
◆ computePageRelations()
static void computePageRelations |
( |
Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 9145 行定义.
9163 term(
"page defined at line %d of file %s with label %s is a direct "
9164 "subpage of itself! Please remove this cyclic dependency.\n",
引用了 PageDef::addInnerCompound(), Entry::children(), Definition::docFile(), Definition::docLine(), Entry::extends, LinkedMap< T, Hash, KeyEqual, Map >::find(), QCString::isEmpty(), Doxygen::mainPage, Entry::MAINPAGEDOC_SEC, BaseInfo::name, Definition::name(), Entry::name, Entry::PAGEDOC_SEC, Doxygen::pageLinkedMap, qPrint(), Entry::section , 以及 term().
被这些函数引用 parseInput().
◆ computeTemplateClassRelations()
static void computeTemplateClassRelations |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 4927 行定义.
4931 const Entry *root = kv.second;
4959 for (
const auto &tn_kv : templateNames)
4961 int templIndex = tn_kv.second;
4963 bool hasActArg=
FALSE;
4964 if (templIndex<(
int)templArgs->size())
4966 actArg=templArgs->at(templIndex);
4970 baseClassNames.find(actArg.
type.
str())!=baseClassNames.end() &&
4971 actualTemplateNames.find(actArg.
type.
str())==actualTemplateNames.end()
4974 actualTemplateNames.insert(std::make_pair(actArg.
type.
str(),templIndex));
引用了 Debug::Classes, DocumentedOnly, ArgumentList::empty(), Entry::extends, FALSE, findClassRelation(), g_classEntries, getClassMutable(), Definition::getLanguage(), getTemplateArgumentsInName(), ClassDef::getTemplateBaseClassNames(), ClassDef::getTemplateInstances(), BaseInfo::name, Definition::name(), Entry::name, Debug::print(), qPrint(), QCString::str(), stringToArgumentList(), stripAnonymousNamespaceScope(), stripTemplateSpecifiersFromScope(), substituteTemplateArgumentsInString(), ClassDef::templateArguments(), toClassDefMutable(), TRUE, Argument::type , 以及 Undocumented.
被这些函数引用 parseInput().
◆ computeTooltipTexts()
static void computeTooltipTexts |
( |
| ) |
|
|
static |
◆ convertToCompoundType()
在文件 doxygen.cpp 第 904 行定义.
引用了 ClassDef::Category, Entry::Category, Entry::CATEGORYDOC_SEC, ClassDef::Class, ClassDef::Exception, Entry::Exception, Entry::EXCEPTIONDOC_SEC, ClassDef::Interface, Entry::Interface, Entry::INTERFACEDOC_SEC, ClassDef::Protocol, Entry::Protocol, Entry::PROTOCOLDOC_SEC, ClassDef::Service, Entry::Service, Entry::SERVICEDOC_SEC, ClassDef::Singleton, Entry::Singleton, Entry::SINGLETONDOC_SEC, ClassDef::Struct, Entry::Struct, Entry::STRUCTDOC_SEC, ClassDef::Union, Entry::Union , 以及 Entry::UNIONDOC_SEC.
被这些函数引用 addClassToContext().
◆ copyExtraFiles()
◆ copyLatexStyleSheet()
static void copyLatexStyleSheet |
( |
| ) |
|
|
static |
◆ copyLogo()
static void copyLogo |
( |
const QCString & |
outputOption | ) |
|
|
static |
在文件 doxygen.cpp 第 9696 行定义.
9704 err(
"Project logo '%s' specified by PROJECT_LOGO does not exist!\n",
qPrint(projectLogo));
9709 QCString destFileName = outputOption+
"/"+fi.fileName();
9710 copyFile(projectLogo,destFileName);
引用了 IndexList::addImageFile(), Config_getString, Config_updateString, copyFile(), err(), FileInfo::exists(), FileInfo::fileName(), Doxygen::indexList, QCString::isEmpty(), qPrint() , 以及 QCString::str().
被这些函数引用 generateOutput().
◆ copyStyleSheet()
static void copyStyleSheet |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 9655 行定义.
9658 if (!htmlStyleSheet.
isEmpty())
9663 err(
"Style sheet '%s' specified by HTML_STYLESHEET does not exist!\n",
qPrint(htmlStyleSheet));
9669 copyFile(htmlStyleSheet,destFileName);
9673 for (
const auto &sheet : htmlExtraStyleSheet)
9675 std::string fileName = sheet;
9676 if (!fileName.empty())
9681 err(
"Style sheet '%s' specified by HTML_EXTRA_STYLESHEET does not exist!\n",fileName.c_str());
9683 else if (fi.fileName()==
"doxygen.css" || fi.fileName()==
"tabs.css" || fi.fileName()==
"navtree.css")
9685 err(
"Style sheet %s specified by HTML_EXTRA_STYLESHEET is already a built-in stylesheet. Please use a different name\n",
qPrint(fi.fileName()));
引用了 Config_getList, Config_getString, Config_updateString, copyFile(), err(), FileInfo::exists(), FileInfo::fileName(), QCString::isEmpty(), qPrint() , 以及 QCString::str().
被这些函数引用 generateOutput().
◆ countMembers()
static void countMembers |
( |
| ) |
|
|
static |
◆ createOutputDirectory()
static QCString createOutputDirectory |
( |
const QCString & |
baseDirName, |
|
|
const QCString & |
formatDirName, |
|
|
const char * |
defaultDirName |
|
) |
| |
|
static |
◆ createTagLessInstance()
在文件 doxygen.cpp 第 1461 行定义.
1464 if (fullName.
right(2)==
"::") fullName=fullName.
left(fullName.
length()-2);
1465 fullName+=
"."+fieldName;
1470 std::unique_ptr<ClassDef>(
1503 const_cast<GroupDef*
>(gd)->addClass(cd);
1509 for (
const auto &md : *ml)
1513 md->typeString(),md->name(),md->argsString(),md->excpString(),
1514 md->protection(),md->virtualness(),md->isStatic(),
Member,
引用了 DefinitionMutable::addInnerCompound(), Definition::briefDescription(), Definition::briefFile(), Definition::briefLine(), Doxygen::classLinkedMap, ClassDef::compoundType(), createClassDef(), createMemberDef(), Definition::docFile(), Definition::docLine(), Definition::documentation(), Definition::getBodyDef(), Definition::getDefColumn(), Definition::getDefFileName(), Definition::getDefLine(), Definition::getEndBodyLine(), ClassDef::getFileDef(), Definition::getLanguage(), ClassDef::getMemberList(), Definition::getOuterScope(), Definition::getStartBodyLine(), Doxygen::globalScope, FileDef::insertClass(), ClassDefMutable::insertMember(), QCString::left(), QCString::length(), DefinitionMutable::makePartOfGroup(), Member, MemberListType_pubAttribs, Definition::name(), Definition::partOfGroups(), removeAnonymousScopes(), QCString::right(), MemberDefMutable::setBitfields(), DefinitionMutable::setBodyDef(), DefinitionMutable::setBodySegment(), DefinitionMutable::setBriefDescription(), MemberDefMutable::setBriefDescription(), DefinitionMutable::setDocumentation(), MemberDefMutable::setDocumentation(), ClassDefMutable::setFileDef(), MemberDefMutable::setInbodyDocumentation(), MemberDefMutable::setInitializer(), DefinitionMutable::setLanguage(), MemberDefMutable::setMaxInitLines(), MemberDefMutable::setMemberClass(), MemberDefMutable::setMemberGroupId(), MemberDefMutable::setMemberSpecifiers(), DefinitionMutable::setOuterScope(), MemberDefMutable::setRequiresClause(), toClassDefMutable() , 以及 toDefinitionMutable().
被这些函数引用 processTagLessClasses().
◆ createTemplateInstanceMembers()
static void createTemplateInstanceMembers |
( |
| ) |
|
|
static |
◆ devUsage()
在文件 doxygen.cpp 第 10501 行定义.
10503 msg(
"Developer parameters:\n");
10504 msg(
" -m dump symbol map\n");
10505 msg(
" -b making messages output unbuffered\n");
10506 msg(
" -T activates output generation via Django like template\n");
10507 msg(
" -d <level> enable a debug level, such as (multiple invocations of -d are possible):\n");
引用了 msg() , 以及 Debug::printFlags().
被这些函数引用 readConfiguration().
◆ distributeClassGroupRelations()
void distributeClassGroupRelations |
( |
| ) |
|
◆ distributeMemberGroupDocumentation()
static void distributeMemberGroupDocumentation |
( |
| ) |
|
|
static |
◆ dumpSymbol()
在文件 doxygen.cpp 第 10465 行定义.
10471 anchor=
":"+md->
anchor();
10478 t <<
"REPLACE INTO symbols (symbol_id,scope_id,name,file,line) VALUES('"
10481 << d->
name() <<
"','"
引用了 addHtmlExtensionIfMissing(), MemberDef::anchor(), Definition::definitionType(), Definition::getDefFileName(), Definition::getDefLine(), Definition::getOuterScope(), Definition::getOutputFileBase(), Doxygen::globalScope, Definition::name(), toMemberDef() , 以及 Definition::TypeMember.
被这些函数引用 dumpSymbolMap().
◆ dumpSymbolMap()
static void dumpSymbolMap |
( |
| ) |
|
|
static |
◆ escapeAliases()
static void escapeAliases |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 10388 行定义.
10396 while ((in=value.find(
"\\n",p))!=-1)
10398 newValue+=value.
mid(p,in-p);
10400 if (value.mid(in,5)!=
"\\note" &&
10401 value.mid(in,5)!=
"\\noop" &&
10402 value.mid(in,5)!=
"\\name" &&
10403 value.mid(in,10)!=
"\\namespace" &&
10404 value.mid(in,14)!=
"\\nosubgrouping"
10407 newValue+=
"\\ilinebr ";
10415 newValue+=value.
mid(p,value.length()-p);
10418 while ((in=value.find(
"^^",p))!=-1)
10420 newValue+=value.
mid(p,in-p);
10421 newValue+=
"\\ilinebr ";
10424 newValue+=value.
mid(p,value.length()-p);
10425 kv.second=newValue.
str();
引用了 Doxygen::aliasMap, QCString::find(), QCString::length(), QCString::mid() , 以及 QCString::str().
被这些函数引用 readAliases().
◆ exitDoxygen()
static void exitDoxygen |
( |
| ) |
|
|
static |
◆ expandAliases()
static void expandAliases |
( |
| ) |
|
|
static |
◆ extractClassName()
◆ filterMemberDocumentation()
static void filterMemberDocumentation |
( |
const Entry * |
root, |
|
|
const QCString & |
relates |
|
) |
| |
|
static |
在文件 doxygen.cpp 第 6807 行定义.
6811 "findMemberDocumentation(): root->type='%s' root->inside='%s' root->name='%s' root->args='%s' section=%x root->spec=%lld root->mGrpId=%d\n",
6826 type=type.
left(i+l);
6830 else if ((type.
left(8)==
"typedef " && args.
find(
'(')!=-1))
6889 if (type==
"friend class" || type==
"friend struct" ||
6890 type==
"friend union")
6896 type+
" "+root->
name,
6948 type +
" " + root->
name,
引用了 Entry::args, Entry::DEFINE_SEC, Entry::exception, Entry::EXPORTED_INTERFACE_SEC, FALSE, QCString::find(), findFunctionPtr(), findMember(), Debug::FindMembers, Entry::FUNCTION_SEC, g_compoundKeywords, Entry::INCLUDED_SERVICE_SEC, Entry::inside, QCString::isEmpty(), Entry::lang, QCString::left(), QCString::length(), Entry::MEMBERDOC_SEC, Entry::mGrpId, Entry::name, Entry::OVERLOADDOC_SEC, QCString::prepend(), Debug::print(), qPrint(), QCString::right(), Entry::section, Entry::spec, QCString::str(), TRUE, Entry::type, Entry::VARIABLE_SEC , 以及 Entry::VARIABLEDOC_SEC.
被这些函数引用 findMemberDocumentation().
◆ findBaseClassesForClass()
在文件 doxygen.cpp 第 4215 行定义.
4233 if (templateNames.empty())
引用了 Config_getBool, DocumentedOnly, Entry::extends, findClassRelation(), getTemplateArgumentsInName(), BaseInfo::name, QCString::str(), substituteTemplateArgumentsInString(), ClassDef::templateArguments(), TemplateInstances, TRUE , 以及 Undocumented.
被这些函数引用 computeClassRelations(), findInheritedTemplateInstances() , 以及 findTemplateInstanceRelation().
◆ findClassDefinition()
◆ findClassEntries()
static void findClassEntries |
( |
const Entry * |
root | ) |
|
|
static |
◆ findClassRelation()
在文件 doxygen.cpp 第 4447 行定义.
4466 bool explicitGlobalScope=
FALSE;
4468 if (biName.
left(2)==
"::")
4471 explicitGlobalScope=
TRUE;
4475 bool lastParent=
FALSE;
4480 int scopeOffset=explicitGlobalScope ? 0 : scopeName.
length();
4489 baseClassName.
prepend(scopeName.
left(scopeOffset)+
"::");
4501 const MemberDef *baseClassTypeDef = resolver.getTypedef();
4502 QCString templSpec = resolver.getTemplateSpec();
4517 || explicitGlobalScope
4525 Debug::Classes,0,
" class relation %s inherited/used by %s found (%s and %s) templSpec='%s'\n",
4534 int si=baseClassName.
findRev(
"::",i);
4536 if (baseClass==0 &&
static_cast<uint>(i)!=baseClassName.
length())
4546 baseClassName = baseClassName.
left(i)+baseClassName.
right(baseClassName.
length()-e);
4552 baseClassTypeDef = resolver.getTypedef();
4557 else if (baseClass && !templSpec.
isEmpty())
4568 baseClass = templClass;
4576 if (!found && si!=-1)
4585 baseClassTypeDef = resolver.getTypedef();
4586 QCString tmpTemplSpec = resolver.getTemplateSpec();
4587 found=baseClass!=0 && baseClass!=cd;
4588 if (found) templSpec = tmpTemplSpec;
4597 found = baseClass!=0 && baseClass!=cd;
4609 found = baseClass!=0 && baseClass!=cd;
4612 bool isATemplateArgument = templateNames.find(biName.
str())!=templateNames.end();
4638 if (baseClassTypeDef==0)
4648 if (baseClassTypeDef || cd->
isCSharp())
4664 "Detected potential recursive class relation "
4665 "between class %s and base class %s!",
4672 else if (mode==
Undocumented && (scopeOffset==0 || isATemplateArgument))
4675 " New undocumented base class '%s' baseClassName=%s templSpec=%s isArtificial=%d\n",
4679 if (isATemplateArgument)
4686 std::unique_ptr<ClassDef>(
4706 std::unique_ptr<ClassDef>(
4714 si = baseClassName.
findRev(
"::");
4728 if (biName.
right(2)==
"-p")
4730 biName=
"<"+biName.
left(biName.
length()-2)+
">";
4740 if (scope!=baseClass)
4745 if (baseClassName.
right(2)==
"-p")
4766 "Detected potential recursive class relation "
4767 "between class %s and base class %s!\n",
4779 else if ((scopeOffset=scopeName.
findRev(
"::",scopeOffset-1))==-1)
4784 }
while (scopeOffset>=0);
4792 parentNode=parentNode->
parent();
4794 }
while (lastParent);
引用了 buildScopeFromQualifiedName(), ClassDef::Class, Debug::Classes, Doxygen::classLinkedMap, Config_getBool, createClassDef(), DocumentedOnly, end(), Entry::EXPORTED_INTERFACE_SEC, FALSE, Entry::fileDef(), Entry::fileName, findClassWithinClassContext(), findEndOfTemplate(), QCString::findRev(), findScopeFromQualifiedName(), findTemplateInstanceRelation(), findTemplateSpecializationPosition(), getClassMutable(), ClassDef::getFileDef(), SymbolResolver::getTemplateSpec(), SymbolResolver::getTypedef(), Doxygen::globalScope, Doxygen::hiddenClassLinkedMap, Entry::INCLUDED_SERVICE_SEC, ClassDefMutable::insertBaseClass(), ClassDefMutable::insertSubClass(), ClassDefMutable::insertUsedFile(), Definition::isArtificial(), ClassDef::isCSharp(), QCString::isEmpty(), isRecursiveBaseClass(), ClassDef::isSubClass(), Entry::lang, QCString::left(), QCString::length(), QCString::mid(), BaseInfo::name, Definition::name(), Entry::name, Doxygen::namespaceAliasMap, Normal, Entry::parent(), QCString::prepend(), Debug::print(), Private, BaseInfo::prot, Protected, ClassDef::Protocol, Public, qPrint(), removeRedundantWhiteSpace(), replaceNamespaceAliases(), QCString::resize(), SymbolResolver::resolveClassMutable(), QCString::right(), Entry::section, DefinitionMutable::setArtificial(), ClassDefMutable::setCompoundType(), DefinitionMutable::setLanguage(), DefinitionMutable::setOuterScope(), SrcLangExt_IDL, Entry::startColumn, Entry::startLine, QCString::str(), Entry::tagInfo(), TemplateInstances, toClassDefMutable(), TRUE, Undocumented, BaseInfo::virt , 以及 warn().
被这些函数引用 computeTemplateClassRelations(), findBaseClassesForClass() , 以及 findUsedClassesForClass().
◆ findClassWithinClassContext()
◆ findDefineDocumentation()
static void findDefineDocumentation |
( |
Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 8853 行定义.
8869 md->setLanguage(root->
lang);
8880 for (
const auto &md : *mn)
8886 for (
const auto &imd : *mn)
8917 for (
const auto &imd : *mn)
8955 "documentation for unknown define %s found.\n",
8962 "found documented #define %s but ignoring it because "
8963 "ENABLE_PREPROCESSING is NO.\n",
引用了 FileDef::absFilePath(), LinkedMap< T, Hash, KeyEqual, Map >::add(), addMemberToGroups(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::args, Entry::bodyLine, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::children(), Config_getBool, createMemberDef(), Entry::DEFINE_SEC, Entry::DEFINEDOC_SEC, Entry::doc, Entry::docFile, Entry::docLine, Entry::endBodyLine, FALSE, Entry::fileDef(), Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), Doxygen::functionNameLinkedMap, MemberDef::getFileDef(), Entry::inbodyDocs, Definition::inbodyDocumentation(), Entry::inbodyFile, Entry::inbodyLine, Entry::initLines, QCString::isEmpty(), Entry::lang, Member, MemberDef::memberType(), MemberType_Define, Entry::mGrpId, Entry::name, Normal, Entry::parent(), Entry::proto, Public, MemberName::push_back(), qPrint(), Entry::section, DefinitionMutable::setBodyDef(), DefinitionMutable::setBodySegment(), MemberDefMutable::setBriefDescription(), MemberDefMutable::setDocsForDefinition(), MemberDefMutable::setDocumentation(), MemberDefMutable::setFileDef(), MemberDefMutable::setInbodyDocumentation(), DefinitionMutable::setLanguage(), MemberDefMutable::setMaxInitLines(), MemberDefMutable::setMemberGroupId(), DefinitionMutable::setRefItems(), MemberDefMutable::setTagInfo(), Entry::sli, Entry::startLine, Entry::tagInfo(), TagInfo::tagName, toMemberDefMutable() , 以及 warn().
被这些函数引用 parseInput().
◆ findDEV()
◆ findDirDocumentation()
static void findDirDocumentation |
( |
const Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 8974 行定义.
8979 normalizedName =
substitute(normalizedName,
"\\",
"/");
8982 if (root->
docFile==normalizedName)
8984 int lastSlashPos=normalizedName.
findRev(
'/');
8985 if (lastSlashPos!=-1)
8987 normalizedName=normalizedName.
left(lastSlashPos);
8990 if (normalizedName.
at(normalizedName.
length()-1)!=
'/')
8992 normalizedName+=
'/';
8998 if (dir->name().right(normalizedName.
length())==normalizedName)
9003 "\\dir command matches multiple directories.\n"
9004 " Applying the command for directory %s\n"
9005 " Ignoring the command for directory %s\n",
9011 matchingDir=dir.get();
9026 "directory found for command \\dir %s\n",
qPrint(normalizedName));
引用了 addDirToGroups(), QCString::at(), Entry::brief, Entry::briefFile, Entry::briefLine, Entry::children(), Entry::DIRDOC_SEC, Doxygen::dirLinkedMap, Entry::doc, Entry::docFile, Entry::docLine, Entry::fileName, QCString::findRev(), QCString::left(), QCString::length(), Definition::name(), Entry::name, qPrint(), Entry::section, DefinitionMutable::setBriefDescription(), DefinitionMutable::setDocumentation(), DefinitionMutable::setRefItems(), Entry::sli, Entry::startLine, substitute() , 以及 warn().
被这些函数引用 parseInput().
◆ findDocumentedEnumValues()
static void findDocumentedEnumValues |
( |
| ) |
|
|
static |
◆ findEndOfTemplate()
static int findEndOfTemplate |
( |
const QCString & |
s, |
|
|
int |
startPos |
|
) |
| |
|
static |
Searches for the end of a template in prototype s starting from character position startPos. If the end was found the position of the closing > is returned, otherwise -1 is returned.
Handles exotic cases such as
Class<bits<<2>
Class<'<'>
在文件 doxygen.cpp 第 4351 行定义.
4358 bool insideString=
FALSE;
4359 bool insideChar=
FALSE;
4361 while (e<len && brCount!=0)
4367 if (!insideString && !insideChar)
4369 if (e<len-1 && s.
at(e+1)==
'<')
4371 else if (roundCount==0)
4376 if (!insideString && !insideChar)
4378 if (e<len-1 && s.
at(e+1)==
'>')
4380 else if (roundCount==0)
4385 if (!insideString && !insideChar)
4389 if (!insideString && !insideChar)
4395 if (insideString && pc!=
'\\')
4404 if (insideChar && pc!=
'\\')
4414 return brCount==0 ? e : -1;
引用了 QCString::at(), FALSE, QCString::length() , 以及 TRUE.
被这些函数引用 findClassRelation().
◆ findEnumDocumentation()
static void findEnumDocumentation |
( |
const Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 7446 行定义.
7496 for (
const auto &imd : *mn)
7511 else if (cd==0 && mcd==0 && nd!=0 && mnd==nd)
7518 else if (cd==0 && nd==0 && mcd==0 && mnd==0 && fd==mfd)
7531 "Documentation for undefined enum '%s' found.",
引用了 addEnumDocs(), QCString::at(), Entry::children(), Entry::ENUMDOC_SEC, FALSE, Entry::fileDef(), Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), Debug::FindMembers, QCString::findRev(), Doxygen::functionNameLinkedMap, getClass(), MemberDef::getClassDef(), MemberDef::getFileDef(), MemberDef::getNamespaceDef(), QCString::isEmpty(), MemberDef::isEnumerate(), QCString::left(), QCString::length(), Doxygen::memberNameLinkedMap, FileDef::name(), Definition::name(), Entry::name, Doxygen::namespaceLinkedMap, Entry::parent(), QCString::prepend(), Debug::print(), qPrint(), QCString::right(), Entry::SCOPE_MASK, Entry::section, Entry::startLine, toMemberDefMutable(), TRUE , 以及 warn().
被这些函数引用 parseInput().
◆ findEnums()
static void findEnums |
( |
const Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 7015 行定义.
7024 bool isRelated=
FALSE;
7025 bool isMemberOf=
FALSE;
7091 md->setLanguage(root->
lang);
7092 md->setId(root->
id);
7093 if (!isGlobal) md->setMemberClass(cd);
else md->setFileDef(fd);
7095 md->setBodyDef(root->
fileDef());
7096 md->setMemberSpecifiers(root->
spec);
7097 md->setEnumBaseType(root->
args);
7100 md->addSectionsToDefinition(root->
anchors);
7101 md->setMemberGroupId(root->
mGrpId);
7107 md->setRefItems(root->
sli);
7121 md->setDefinition(name+baseType);
7125 md->setDefinition(nd->
name()+
"::"+name+baseType);
7129 md->setNamespace(nd);
7138 if (!defSet) md->setDefinition(name+baseType);
7139 if (fd==0 && root->
parent())
7153 md->setDefinition(name+baseType);
7157 md->setDefinition(cd->
name()+
"::"+name+baseType);
7163 md->setDocsForDefinition(!root->
proto);
引用了 LinkedMap< T, Hash, KeyEqual, Map >::add(), addMemberToGroups(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::args, Entry::bodyLine, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::callerGraph, Entry::callGraph, Entry::children(), Config_getBool, createMemberDef(), Entry::doc, Entry::docFile, Entry::docLine, MemberDefMutable::enableCallerGraph(), MemberDefMutable::enableCallGraph(), MemberDefMutable::enableReferencedByRelation(), MemberDefMutable::enableReferencesRelation(), Entry::endBodyLine, Entry::ENUM_SEC, FALSE, Entry::fileDef(), Entry::fileName, QCString::findRev(), Foreign, Doxygen::functionNameLinkedMap, getClass(), getClassMutable(), getResolvedNamespaceMutable(), Entry::id, Entry::inbodyDocs, Entry::inbodyFile, Entry::inbodyLine, NamespaceDefMutable::insertMember(), FileDef::insertMember(), ClassDefMutable::insertMember(), ClassDefMutable::insertUsedFile(), Definition::isAnonymous(), QCString::isEmpty(), Entry::lang, QCString::left(), QCString::length(), Member, Doxygen::memberNameLinkedMap, MemberOf, MemberType_Enumeration, mergeScopes(), Entry::metaData, Entry::mGrpId, Definition::name(), Entry::name, Normal, Entry::parent(), QCString::prepend(), Entry::protection, Entry::proto, MemberName::push_back(), Entry::referencedByRelation, Entry::referencesRelation, Related, Entry::relates, Entry::relatesType, QCString::right(), Entry::SCOPE_MASK, Entry::section, DefinitionMutable::setBodyDef(), DefinitionMutable::setBodySegment(), MemberDefMutable::setBriefDescription(), MemberDefMutable::setDefinition(), MemberDefMutable::setDocsForDefinition(), MemberDefMutable::setDocumentation(), MemberDefMutable::setEnumBaseType(), MemberDefMutable::setFileDef(), DefinitionMutable::setId(), MemberDefMutable::setInbodyDocumentation(), DefinitionMutable::setLanguage(), MemberDefMutable::setMemberClass(), MemberDefMutable::setMemberGroupId(), MemberDefMutable::setMemberSpecifiers(), MemberDefMutable::setNamespace(), DefinitionMutable::setRefItems(), MemberDefMutable::setTagInfo(), Entry::sli, Entry::spec, Entry::startColumn, Entry::startLine, Entry::tagInfo() , 以及 TRUE.
被这些函数引用 parseInput().
◆ findFunctionPtr()
static int findFunctionPtr |
( |
const std::string & |
type, |
|
|
SrcLangExt |
lang, |
|
|
int * |
pLength = 0 |
|
) |
| |
|
static |
See if the return type string type is that of a function pointer
- 返回
- -1 if this is not a function pointer variable or the index at which the closing brace of (...*name) was found.
在文件 doxygen.cpp 第 2599 行定义.
2606 static const reg::Ex re(R
"(\([^)]*[*^][^)]*\))");
2608 size_t i=std::string::npos;
2612 i =
match.position();
2615 size_t bb=type.find(
'<');
2616 size_t be=type.rfind(
'>');
2618 if (!type.empty() &&
2619 i!=std::string::npos &&
2620 type.find(
"operator")==std::string::npos &&
2621 (type.find(
")(")==std::string::npos || type.find(
"typedef ")!=std::string::npos) &&
2626 if (pLength) *pLength=(int)l;
引用了 reg::match(), reg::search(), SrcLangExt_Fortran , 以及 SrcLangExt_VHDL.
被这些函数引用 filterMemberDocumentation().
◆ findGlobalMember()
在文件 doxygen.cpp 第 5273 行定义.
5283 "2. findGlobalMember(namespace=%s,type=%s,name=%s,tempArg=%s,decl=%s)\n",
5298 for (
const auto &md : *mn)
5301 if (md->isAlias() && md->getOuterScope() &&
5308 nd = md->getNamespaceDef();
5313 if (nd && md->isEnumValue() && (enumNamePos=namespaceName.
findRev(
"::"))!=-1)
5315 QCString enumName = namespaceName.
mid(enumNamePos+2);
5316 if (namespaceName.
left(enumNamePos)==nd->
name())
5321 for (
const auto &emd : *enumMn)
5323 found = emd->isStrong() && md->getEnumScope()==emd.get();
5337 else if (nd==0 && md->isEnumValue())
5342 for (
const auto &emd : *enumMn)
5344 found = emd->isStrong() && md->getEnumScope()==emd.get();
5367 if ((namespaceName.
isEmpty() && nd==0) ||
5368 (nd && nd->
name()==namespaceName) ||
5389 if (matching && !root->
tArgLists.empty())
5406 if (matching && md->isStatic() &&
5407 md->getDefFileName()!=root->
fileName &&
5414 if (!md->templateArguments().empty() && !root->
tArgLists.empty())
5418 if (md->templateArguments().size()!=root->
tArgLists.back().size() ||
5419 md->typeString()!=type ||
5420 md->requiresClause()!=root->
req)
5444 warnMsg+=
"\nPossible candidates:\n";
5445 for (
const auto &md : *mn)
5448 warnMsg+=
substitute(md->declaration(),
"%",
"%%");
5450 " of file "+md->getDefFileName()+
"\n";
5458 if (root->
type!=
"friend class" &&
5459 root->
type!=
"friend struct" &&
5460 root->
type!=
"friend union" &&
5461 root->
type!=
"friend" &&
5467 "documented symbol '%s' was not declared or defined.",
qPrint(decl)
引用了 addMemberDocs(), Entry::argList, argListToString(), Config_getBool, MemberDef::declaration(), Definition::definitionType(), Duplicate, ArgumentList::empty(), FALSE, Entry::fileDef(), Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), QCString::find(), LinkedRefMap< T, Hash, KeyEqual, Map >::find(), Debug::FindMembers, QCString::findRev(), Entry::FUNCTION_SEC, Doxygen::functionNameLinkedMap, Definition::getDefFileName(), Definition::getDefLine(), MemberDef::getEnumScope(), MemberDef::getFileDef(), MemberDef::getNamespaceDef(), Definition::getOuterScope(), FileDef::getUsedNamespaces(), Doxygen::globalScope, Definition::isAlias(), QCString::isEmpty(), MemberDef::isEnumValue(), MemberDef::isStatic(), MemberDef::isTypedef(), MemberDef::isVariable(), QCString::left(), matchArguments2(), QCString::mid(), Definition::name(), Doxygen::namespaceLinkedMap, Debug::print(), qPrint(), Definition::qualifiedName(), Entry::relatesType, Entry::req, MemberDef::requiresClause(), MemberDef::resolveAlias(), Entry::section, QCString::setNum(), ArgumentList::size(), QCString::size(), Entry::spec, Entry::startLine, substitute(), Entry::tArgLists, MemberDef::templateArguments(), toMemberDefMutable(), toNamespaceDef(), TRUE, Entry::type, Definition::TypeNamespace, MemberDef::typeString() , 以及 warn().
被这些函数引用 findMember().
◆ findGroupScope()
static void findGroupScope |
( |
const Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 415 行定义.
429 scope+=
"::"+gd->
name();
引用了 Entry::children(), findScopeFromQualifiedName(), Doxygen::globalScope, Entry::GROUPDOC_SEC, Doxygen::groupLinkedMap, QCString::isEmpty(), Definition::name(), Entry::name, Entry::PACKAGEDOC_SEC, Entry::parent(), Entry::section, GroupDef::setGroupScope(), stripAnonymousNamespaceScope(), substitute() , 以及 Entry::tagInfo().
被这些函数引用 parseInput().
◆ findIncludedUsingDirectives()
static void findIncludedUsingDirectives |
( |
| ) |
|
|
static |
◆ findInheritedTemplateInstances()
static void findInheritedTemplateInstances |
( |
| ) |
|
|
static |
Using the dictionary build by findClassEntries(), this function will look for additional template specialization that exists as inheritance relations only. These instances will be added to the template they are derived from.
在文件 doxygen.cpp 第 4854 行定义.
4859 const Entry *root = kv.second;
引用了 Debug::Classes, extractClassName(), FALSE, findBaseClassesForClass(), g_classEntries, getClass(), Debug::print(), qPrint(), TemplateInstances , 以及 toClassDefMutable().
被这些函数引用 parseInput().
◆ findMainPage()
static void findMainPage |
( |
Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 9063 行定义.
9098 else if (si->
lineNr() != -1)
9100 warn(root->
fileName,root->
startLine,
"multiple use of section label '%s' for main page, (first occurrence: %s, line %d)",
9105 warn(root->
fileName,root->
startLine,
"multiple use of section label '%s' for main page, (first occurrence: %s)",
9125 "found more than one \\mainpage comment block! (first occurrence: %s, line %d), Skipping current block!",
引用了 SectionManager::add(), addPageToContext(), Entry::anchors, Entry::args, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::children(), Config_getString, createPageDef(), Entry::doc, Entry::docFile, Entry::docLine, SectionInfo::fileName(), Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), Entry::inbodyDocs, SectionManager::instance(), QCString::isEmpty(), SectionInfo::lineNr(), Entry::localToc, Doxygen::mainPage, Entry::MAINPAGEDOC_SEC, Page, qPrint(), SectionInfo::ref(), SectionManager::replace(), Entry::section, Entry::startLine, QCString::stripWhiteSpace(), Entry::tagInfo() , 以及 warn().
被这些函数引用 parseInput().
◆ findMainPageTagFiles()
static void findMainPageTagFiles |
( |
Entry * |
root | ) |
|
|
static |
◆ findMember()
This function tries to find a member (in a documented class/file/namespace) that corresponds to the function/variable declaration given in funcDecl.
The boolean overloaded is used to specify whether or not a standard overload documentation line should be generated.
The boolean isFunc is a hint that indicates that this is a function instead of a variable or typedef.
在文件 doxygen.cpp 第 6165 行定义.
6175 "findMember(root=%p,funcDecl='%s',related='%s',overload=%d,"
6176 "isFunc=%d mGrpId=%d #tArgList=%d "
6177 "spec=%lld lang=%x\n",
6192 bool isRelated=
FALSE;
6193 bool isMemberOf=
FALSE;
6194 bool isFriend=
FALSE;
6228 while ((sep=funcDecl.
find(
';'))!=-1)
6230 funcDecl=(funcDecl.
left(sep)+funcDecl.
right(funcDecl.
length()-sep-1)).stripWhiteSpace();
6234 if (!funcDecl.
isEmpty() && funcDecl[0]!=
' ') funcDecl.
prepend(
" ");
6246 if (isFriend && funcDecl.
left(6)==
"class ")
6250 funcName = funcDecl;
6252 else if (isFriend && funcDecl.
left(7)==
"struct ")
6255 funcName = funcDecl;
6261 funcArgs,funcTempList,exceptions
6283 scopeName = relates;
6298 scopeName = joinedName;
6312 QCString joinedName = fnd->name()+
"::"+scopeName;
6315 scopeName=joinedName;
6343 if (namespaceName.
find(
'@')!=-1)
return;
6352 scopeName=namespaceName;
6354 else if (!relates.
isEmpty() ||
6357 scopeName=namespaceName+
"::"+className;
6361 scopeName=className;
6364 else if (!className.
isEmpty())
6366 scopeName=className;
6376 uint argListIndex=0;
6381 tempScopeName=scopeName+funcSpec;
6395 funcDecl=funcType+
" "+tempScopeName+
"::"+funcName+funcTempList;
6399 funcDecl=funcType+
" "+tempScopeName+
"::"+funcName+funcArgs;
6406 funcDecl=tempScopeName+
"::"+funcName+funcTempList;
6410 funcDecl=tempScopeName+
"::"+funcName+funcArgs;
6420 funcDecl=funcType+
" "+funcName+funcTempList;
6424 funcDecl=funcType+
" "+funcName+funcArgs;
6431 funcDecl=funcName+funcTempList;
6435 funcDecl=funcName+funcArgs;
6440 if (funcType==
"template class" && !funcTempList.
isEmpty())
6444 "findMember() Parse results:\n"
6445 " namespaceName='%s'\n"
6451 " funcTempList='%s'\n"
6454 " exceptions='%s'\n"
6468 "1. funcName='%s'\n",
qPrint(funcName));
6472 bool strongEnum =
false;
6476 for (
const auto &imd : *mn)
6486 namespaceName+=
"::"+className;
6490 namespaceName=className;
6496 if (funcName.
left(9)==
"operator ")
6498 funcName =
substitute(funcName,className+
"::",
"");
6509 if (!isRelated && !strongEnum && mn)
6512 "2. member name exists (%d members with this name)\n",mn->size());
6518 funcArgs,funcTempList,exceptions,
6519 type,args,isFriend,spec,relates,funcDecl,overloaded,isFunc);
6531 else if (overloaded)
6533 addOverloaded(root,mn,funcType,funcName,funcArgs,funcDecl,exceptions,spec);
6537 if (!
findGlobalMember(root,namespaceName,funcType,funcName,funcTempList,funcArgs,funcDecl,spec))
6542 "Cannot determine class for function\n%s",
6548 else if (isRelated && !relates.
isEmpty())
6551 " scopeName=%s className=%s\n",
qPrint(scopeName),
qPrint(className));
6552 if (className.
isEmpty()) className=relates;
6556 bool newMember=
TRUE;
6562 for (
const auto &imd : *mn)
6584 for (
const auto &irmd : *mn)
6629 funcDecl=funcType +
" " + funcName;
6643 funcType,funcName,funcArgs,exceptions,
6645 root->
stat && !isMemberOf,
6684 for (
const auto &irmd : *rmn)
6748 mn->push_back(std::move(md));
6752 if (!
findGlobalMember(root,namespaceName,funcType,funcName,funcTempList,funcArgs,funcDecl,spec))
6757 "Cannot determine file/namespace for relatedalso function\n%s",
6766 "class '%s' for related function '%s' is not "
6774 addLocalObjCMethod(root,scopeName,funcType,funcName,funcArgs,exceptions,funcDecl,spec);
6778 bool globMem =
findGlobalMember(root,namespaceName,funcType,funcName,funcTempList,funcArgs,funcDecl,spec);
6779 if (className.
isEmpty() && !globMem)
6782 "class for member '%s' cannot "
6783 "be found.",
qPrint(funcName)
6786 else if (!className.
isEmpty() && !globMem)
6789 "member '%s' of class '%s' cannot be found",
6798 "member with no name found.");
引用了 LinkedMap< T, Hash, KeyEqual, Map >::add(), addLocalObjCMethod(), addMemberDocs(), addMemberFunction(), addMemberSpecialization(), addMemberToGroups(), addOverloaded(), DefinitionMutable::addSectionsToDefinition(), Entry::anchors, Entry::argList, argListToString(), MemberDef::argsString(), MemberDef::argumentList(), Entry::bodyLine, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::callerGraph, Entry::callGraph, Config_getBool, createMemberDef(), DCOP, Entry::doc, Entry::docFile, Entry::docLine, Duplicate, MemberDefMutable::enableCallerGraph(), MemberDefMutable::enableCallGraph(), MemberDefMutable::enableReferencedByRelation(), MemberDefMutable::enableReferencesRelation(), Entry::endBodyLine, Entry::Explicit, extractNamespaceName(), FALSE, Entry::fileDef(), Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), QCString::find(), findGlobalMember(), Debug::FindMembers, Foreign, Doxygen::functionNameLinkedMap, Definition::getBodyDef(), getClass(), getClassMutable(), Definition::getDefLine(), Definition::getEndBodyLine(), MemberDef::getFileDef(), Definition::getOuterScope(), Definition::getStartBodyLine(), FileDef::getUsedNamespaces(), Entry::id, Entry::inbodyDocs, Entry::inbodyFile, Entry::inbodyLine, MemberDef::initializer(), Entry::Inline, ClassDefMutable::insertMember(), ClassDefMutable::insertUsedFile(), MemberDef::isDefine(), QCString::isEmpty(), MemberDef::isEnumerate(), MemberDef::isStrong(), Entry::lang, QCString::left(), QCString::length(), matchArguments2(), Doxygen::memberNameLinkedMap, MemberOf, MemberType_DCOP, MemberType_Define, MemberType_Function, MemberType_Signal, MemberType_Slot, mergeScopes(), Entry::metaData, Entry::mGrpId, Entry::mtype, Entry::Mutable, Definition::name(), Entry::name, Doxygen::namespaceLinkedMap, Entry::OBJCIMPL_SEC, Entry::parent(), parseFuncDecl(), QCString::prepend(), Debug::print(), Entry::protection, Entry::proto, MemberName::push_back(), qPrint(), ClassDef::qualifiedNameWithTemplateParameters(), Entry::referencedByRelation, Entry::referencesRelation, Related, Entry::relatesType, removeRedundantWhiteSpace(), QCString::resize(), QCString::right(), Entry::SCOPE_MASK, Entry::section, DefinitionMutable::setBodyDef(), DefinitionMutable::setBodySegment(), MemberDefMutable::setBriefDescription(), MemberDefMutable::setDefinition(), MemberDefMutable::setDefinitionTemplateParameterLists(), MemberDefMutable::setDocsForDefinition(), MemberDefMutable::setDocumentation(), MemberDefMutable::setHidden(), DefinitionMutable::setId(), MemberDefMutable::setInbodyDocumentation(), MemberDefMutable::setInitializer(), DefinitionMutable::setLanguage(), MemberDefMutable::setMemberClass(), MemberDefMutable::setMemberGroupId(), MemberDefMutable::setMemberSpecifiers(), MemberDefMutable::setPrototype(), DefinitionMutable::setRefItems(), MemberDefMutable::setRelatedAlso(), MemberDefMutable::setTagInfo(), Signal, MemberName::size(), Entry::sli, Slot, Entry::spec, Entry::startColumn, Entry::startLine, Entry::stat, QCString::stripPrefix(), stripTemplateSpecifiersFromScope(), QCString::stripWhiteSpace(), substitute(), Entry::tagInfo(), Entry::tArgLists, toMemberDefMutable(), TRUE, Entry::virt, warn() , 以及 warn_undoc().
被这些函数引用 filterMemberDocumentation() , 以及 findObjCMethodDefinitions().
◆ findMemberDocumentation()
static void findMemberDocumentation |
( |
const Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 6959 行定义.
6977 for (
const auto &e : root->
children())
引用了 Entry::children(), Entry::DEFINE_SEC, Duplicate, Entry::ENUM_SEC, Entry::EXPORTED_INTERFACE_SEC, filterMemberDocumentation(), Entry::FUNCTION_SEC, Entry::INCLUDED_SERVICE_SEC, QCString::isEmpty(), Entry::MEMBERDOC_SEC, Entry::OVERLOADDOC_SEC, Entry::relates, Entry::relatesType, Entry::section, Entry::VARIABLE_SEC , 以及 Entry::VARIABLEDOC_SEC.
被这些函数引用 parseInput().
◆ findObjCMethodDefinitions()
static void findObjCMethodDefinitions |
( |
const Entry * |
root | ) |
|
|
static |
◆ findScopeFromQualifiedName()
在文件 doxygen.cpp 第 793 行定义.
823 if (resultScope!=0)
break;
引用了 buildScopeFromQualifiedName(), LinkedRefMap< T, Hash, KeyEqual, Map >::empty(), FALSE, Definition::findInnerCompound(), g_usingDeclarations, Definition::getLanguage(), getScopeFragment(), FileDef::getUsedNamespaces(), Doxygen::globalScope, QCString::left(), QCString::length(), QCString::mid(), Definition::name(), QCString::right(), rightScopeMatch(), stripTemplateSpecifiersFromScope(), toDefinition() , 以及 toNamespaceDefMutable().
被这些函数引用 addConceptToContext(), addPageToContext(), buildNamespaceList(), findClassRelation(), findGroupScope() , 以及 resolveClassNestingRelations().
◆ findSectionsInDocumentation()
static void findSectionsInDocumentation |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 8689 行定义.
8712 for (
const auto &fd : *fn)
8714 fd->findSectionsInDocumentation();
8729 gd->findSectionsInDocumentation();
8734 pd->findSectionsInDocumentation();
引用了 Doxygen::classLinkedMap, Doxygen::conceptLinkedMap, ConceptDefMutable::findSectionsInDocumentation(), GroupDef::findSectionsInDocumentation(), NamespaceDefMutable::findSectionsInDocumentation(), FileDef::findSectionsInDocumentation(), ClassDefMutable::findSectionsInDocumentation(), Doxygen::groupLinkedMap, Doxygen::inputNameLinkedMap, Doxygen::mainPage, Doxygen::namespaceLinkedMap, Doxygen::pageLinkedMap, toClassDefMutable(), toConceptDefMutable() , 以及 toNamespaceDefMutable().
被这些函数引用 parseInput().
◆ findTagLessClasses() [1/2]
static void findTagLessClasses |
( |
| ) |
|
|
static |
◆ findTagLessClasses() [2/2]
◆ findTemplateInstanceRelation()
在文件 doxygen.cpp 第 4265 行定义.
4281 bool existingClass = (templSpec ==
4284 if (existingClass)
return;
4286 bool freshInstance=
FALSE;
4303 for (
auto it=it_pair.first ; it!=it_pair.second ; ++it)
4305 const Entry *templateRoot = it->second;
4313 isArtificial,templArgs,templateNames);
引用了 Debug::Classes, FALSE, Entry::fileName, findBaseClassesForClass(), findUsedClassesForClass(), g_classEntries, ClassDef::insertTemplateInstance(), Entry::lang, Definition::name(), Entry::name, Debug::print(), qPrint(), DefinitionMutable::setArtificial(), DefinitionMutable::setLanguage(), ClassDefMutable::setTemplateBaseClassNames(), Entry::startColumn, Entry::startLine, QCString::str(), stringToArgumentList(), tempArgListToString(), ClassDef::templateArguments(), TemplateInstances, toClassDefMutable() , 以及 TRUE.
被这些函数引用 findClassRelation().
◆ findTemplateSpecializationPosition()
static int findTemplateSpecializationPosition |
( |
const QCString & |
name | ) |
|
|
static |
在文件 doxygen.cpp 第 4417 行定义.
4420 int l =
static_cast<int>(name.
length());
4426 while (count>0 && i>=0)
4431 case '>':
if (!insideQuote) count++;
break;
4432 case '<':
if (!insideQuote) count--;
break;
4433 case '\'':
if (!insideQuote) insideQuote=c;
4434 else if (insideQuote==c && (i<0 || name[i]!=
'\\')) insideQuote=0;
4436 case '"':
if (!insideQuote) insideQuote=c;
4437 else if (insideQuote==c && (i<0 || name[i]!=
'\\')) insideQuote=0;
引用了 QCString::isEmpty() , 以及 QCString::length().
被这些函数引用 findClassRelation().
◆ findUsedClassesForClass()
在文件 doxygen.cpp 第 4050 行定义.
4062 for (
auto &mi : *mni)
4072 type = typedefValue;
4086 const ClassDefMutable *typeCd = resolver.resolveClassMutable(masterCd,usedClassName,
false,
true);
4091 usedClassName = typeCd->
name();
4094 int sp=usedClassName.
find(
'<');
4096 int si=usedClassName.
findRev(
"::",sp);
4107 if (templateNames.empty())
4116 if (arg.name==usedName)
4126 std::unique_ptr<ClassDef>(
4174 if (!found && !type.
isEmpty())
4180 if (type.
right(2)==
"(*" || type.
right(2)==
"(^")
4187 std::unique_ptr<ClassDef>(
引用了 ClassDefMutable::addUsedByClass(), ClassDefMutable::addUsedClass(), MemberDef::argsString(), ClassDef::Class, Debug::Classes, Config_getBool, createClassDef(), extractClassNameFromType(), FALSE, LinkedMap< T, Hash, KeyEqual, Map >::find(), QCString::find(), findClassRelation(), findClassWithinClassContext(), QCString::findRev(), Definition::getDefColumn(), Definition::getDefFileName(), Definition::getDefLine(), ClassDef::getFileDef(), Definition::getLanguage(), getTemplateArgumentsInName(), Doxygen::hiddenClassLinkedMap, QCString::isEmpty(), MemberDef::isObjCProperty(), MemberDef::isVariable(), Entry::lang, ClassDefMutable::makeTemplateArgument(), ClassDef::memberNameInfoLinkedMap(), Definition::name(), Normal, normalizeNonTemplateArgumentsInString(), Debug::print(), MemberDef::protection(), Public, qPrint(), removeRedundantWhiteSpace(), replaceNamespaceAliases(), SymbolResolver::resolveClassMutable(), resolveTypeDef(), QCString::right(), DefinitionMutable::setArtificial(), DefinitionMutable::setLanguage(), ClassDefMutable::setUsedOnly(), QCString::str(), substituteTemplateArgumentsInString(), ClassDef::templateArguments(), TemplateInstances, toClassDefMutable(), TRUE , 以及 MemberDef::typeString().
被这些函数引用 findTemplateInstanceRelation() , 以及 findUsedTemplateInstances().
◆ findUsedNamespace()
◆ findUsedTemplateInstances()
static void findUsedTemplateInstances |
( |
| ) |
|
|
static |
◆ findUsingDeclarations()
static void findUsingDeclarations |
( |
const Entry * |
root, |
|
|
bool |
filterPythonPackages |
|
) |
| |
|
static |
在文件 doxygen.cpp 第 1986 行定义.
2027 usingCd = resolver.resolveClassMutable(nd,name);
2041 std::unique_ptr<ClassDef>(
引用了 NamespaceDefMutable::addUsingDeclaration(), FileDef::addUsingDeclaration(), Entry::children(), ClassDef::Class, Debug::Classes, Entry::COMPOUND_MASK, createClassDef(), QCString::endsWith(), Entry::fileDef(), Entry::fileName, getClassMutable(), getResolvedNamespaceMutable(), Doxygen::hiddenClassLinkedMap, QCString::isEmpty(), Entry::lang, FileDef::name(), Definition::name(), Entry::name, Entry::NAMESPACE_SEC, Entry::parent(), Debug::print(), qPrint(), SymbolResolver::resolveClassMutable(), Entry::section, DefinitionMutable::setArtificial(), DefinitionMutable::setLanguage(), SrcLangExt_Python, substitute(), Entry::tArgLists, toClassDefMutable(), TRUE , 以及 Entry::USINGDECL_SEC.
被这些函数引用 parseInput().
◆ findUsingDeclImports()
static void findUsingDeclImports |
( |
const Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 2075 行定义.
2104 for (
auto &mi : *mni)
2139 newMd->enableCallGraph(root->
callGraph);
2144 newMd->addSectionsToDefinition(root->
anchors);
2150 newMd->setMemberGroupId(root->
mGrpId);
2152 newMd->setLanguage(root->
lang);
2153 newMd->setId(root->
id);
引用了 LinkedMap< T, Hash, KeyEqual, Map >::add(), Entry::anchors, MemberDef::argsString(), MemberDef::argumentList(), MemberDef::bitfieldString(), Entry::brief, MemberDef::briefDescription(), Definition::briefFile(), Entry::briefFile, Definition::briefLine(), Entry::briefLine, Entry::callerGraph, Entry::callGraph, Entry::children(), Entry::COMPOUND_MASK, createMemberDef(), MemberDef::definition(), Entry::doc, Definition::docFile(), Entry::docFile, Definition::docLine(), Entry::docLine, MemberDef::documentation(), MemberDef::excpString(), Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), QCString::find(), Definition::getBodyDef(), getClassMutable(), Definition::getDefLine(), Definition::getEndBodyLine(), MemberDef::getMemberSpecifiers(), Definition::getStartBodyLine(), Entry::id, Entry::inbodyDocs, Definition::inbodyDocumentation(), Definition::inbodyFile(), Entry::inbodyFile, Definition::inbodyLine(), Entry::inbodyLine, MemberDef::initializer(), MemberDef::initializerLines(), ClassDefMutable::insertMember(), QCString::isEmpty(), MemberDef::isStatic(), Entry::lang, QCString::left(), QCString::length(), Member, ClassDef::memberNameInfoLinkedMap(), Doxygen::memberNameLinkedMap, MemberDef::memberType(), Entry::metaData, Entry::mGrpId, Entry::name, Entry::parent(), Private, MemberDef::protection(), Entry::protection, MemberName::push_back(), Entry::referencedByRelation, Entry::referencesRelation, removeRedundantWhiteSpace(), MemberDef::requiresClause(), SymbolResolver::resolveClass(), QCString::right(), Entry::section, MemberDefMutable::setMemberClass(), Entry::startColumn, Entry::startLine, stripAnonymousNamespaceScope(), stripTemplateSpecifiersFromScope(), Entry::tagInfo(), TagInfo::tagName, MemberDef::templateArguments(), MemberDef::typeString(), Entry::USINGDECL_SEC , 以及 Entry::virt.
被这些函数引用 parseInput().
◆ findUsingDirectives()
static void findUsingDirectives |
( |
const Entry * |
root | ) |
|
|
static |
在文件 doxygen.cpp 第 1829 行定义.
1836 if (name.
right(2)==
"::")
1864 int scopeOffset = nsName.
length();
1875 else if ((scopeOffset=nsName.
findRev(
"::",scopeOffset-1))==-1)
1879 }
while (scopeOffset>=0 && usingNd==0);
1881 if (usingNd==0 && nd)
1885 while (pnd && usingNd==0)
1902 if (usingNd==0 && fd)
1931 std::unique_ptr<NamespaceDef>(
引用了 GroupDef::addNamespace(), DefinitionMutable::addSectionsToDefinition(), NamespaceDefMutable::addUsingDirective(), FileDef::addUsingDirective(), Entry::anchors, Entry::brief, Entry::briefFile, Entry::briefLine, Entry::children(), createNamespaceDef(), Definition::definitionType(), Entry::doc, Entry::docFile, Entry::docLine, Entry::fileDef(), Entry::fileName, LinkedMap< T, Hash, KeyEqual, Map >::find(), QCString::findRev(), findUsedNamespace(), Definition::getLanguage(), Definition::getOuterScope(), getResolvedNamespace(), getResolvedNamespaceMutable(), NamespaceDef::getUsedNamespaces(), FileDef::getUsedNamespaces(), Doxygen::groupLinkedMap, Grouping::groupname, Entry::groups, Entry::hidden, Entry::id, Entry::Inline, FileDef::insertNamespace(), NamespaceDefMutable::insertUsedFile(), QCString::isEmpty(), Entry::lang, QCString::left(), QCString::length(), Entry::metaData, Entry::name, Entry::NAMESPACE_SEC, Doxygen::namespaceLinkedMap, Entry::parent(), QCString::right(), Entry::section, DefinitionMutable::setArtificial(), DefinitionMutable::setBriefDescription(), DefinitionMutable::setDocumentation(), DefinitionMutable::setHidden(), DefinitionMutable::setId(), NamespaceDefMutable::setInline(), DefinitionMutable::setLanguage(), NamespaceDefMutable::setMetaData(), DefinitionMutable::setRefItems(), Entry::sli, Entry::spec, SrcLangExt_Java, Entry::startColumn, Entry::startLine, stripAnonymousNamespaceScope(), substitute(), toNamespaceDef(), toNamespaceDefMutable(), TRUE, Definition::TypeNamespace , 以及 Entry::USINGDIR_SEC.
被这些函数引用 parseInput().
◆ flushCachedTemplateRelations()
static void flushCachedTemplateRelations |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 8742 行定义.
8754 elementsToRemove.push_back(ci.first);
8757 for (
const auto &k : elementsToRemove)
8768 for (
const auto &ifmd : *fn)
8782 for (
const auto &imd : *nm)
引用了 LookupInfo::classDef, Doxygen::functionNameLinkedMap, MemberDef::getCachedTypedefVal(), MemberDefMutable::invalidateTypedefValCache(), ClassDef::isTemplate(), MemberDef::isTypedefValCached(), Doxygen::lookupCache, Doxygen::memberNameLinkedMap, Cache< K, V >::remove() , 以及 toMemberDefMutable().
被这些函数引用 parseInput().
◆ flushUnresolvedRelations()
static void flushUnresolvedRelations |
( |
| ) |
|
|
static |
◆ g_pathsVisited()
◆ generateClassDocs()
static void generateClassDocs |
( |
| ) |
|
|
static |
◆ generateClassList()
在文件 doxygen.cpp 第 8443 行定义.
8445 std::size_t numThreads =
static_cast<std::size_t
>(
Config_getInt(NUM_PROC_THREADS));
8448 numThreads = std::thread::hardware_concurrency();
8455 : cd(cd_), ol(ol_) {}
8460 std::vector< std::future< std::shared_ptr<DocContext> > > results;
8461 for (
const auto &cdi : classList)
8472 auto ctx = std::make_shared<DocContext>(cd,*
g_outputList);
8473 auto processFile = [ctx]()
8475 msg(
"Generating docs for compound %s...\n",
qPrint(ctx->cd->name()));
8479 if ( ctx->cd->isLinkableInProject() && ctx->cd->templateMaster()==0)
8481 ctx->cd->writeDocumentation(ctx->ol);
8482 ctx->cd->writeMemberList(ctx->ol);
8486 ctx->cd->writeDocumentationForInnerClasses(ctx->ol);
8489 results.emplace_back(threadPool.queue(processFile));
8492 for (
auto &f : results)
8499 for (
const auto &cdi : classList)
8514 msg(
"Generating docs for compound %s...\n",
qPrint(cd->
name()));
引用了 Config_getInt, g_outputList, Definition::getOuterScope(), Doxygen::globalScope, ClassDef::isEmbeddedInOuterScope(), Definition::isHidden(), ClassDef::isLinkableInProject(), msg(), Definition::name(), qPrint(), ThreadPool::queue(), ClassDef::templateMaster(), toClassDefMutable(), ClassDefMutable::writeDocumentation(), ClassDefMutable::writeDocumentationForInnerClasses() , 以及 ClassDefMutable::writeMemberList().
被这些函数引用 generateClassDocs().
◆ generateConceptDocs()
static void generateConceptDocs |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 8534 行定义.
8547 msg(
"Generating docs for concept %s...\n",
qPrint(cd->
name()));
引用了 Doxygen::conceptLinkedMap, g_outputList, Definition::getOuterScope(), Doxygen::globalScope, Definition::isHidden(), ConceptDef::isLinkableInProject(), msg(), Definition::name(), qPrint(), toConceptDefMutable() , 以及 ConceptDefMutable::writeDocumentation().
被这些函数引用 generateOutput().
◆ generateConfigFile()
static void generateConfigFile |
( |
const QCString & |
configFile, |
|
|
bool |
shortList, |
|
|
bool |
updateOnly = FALSE |
|
) |
| |
|
static |
Generate a template version of the configuration file. If the shortList parameter is TRUE a configuration file without comments will be generated.
在文件 doxygen.cpp 第 9539 行定义.
9544 bool writeToStdout=configFile==
"-";
9553 msg(
"\n\nConfiguration file '%s' created.\n\n",
qPrint(configFile));
9554 msg(
"Now edit the configuration file and enter\n\n");
9555 if (configFile!=
"Doxyfile" && configFile!=
"doxyfile")
9556 msg(
" doxygen %s\n\n",
qPrint(configFile));
9558 msg(
" doxygen\n\n");
9559 msg(
"to generate the documentation for your project\n\n");
9563 msg(
"\n\nConfiguration file '%s' updated.\n\n",
qPrint(configFile));
9569 term(
"Cannot open file %s for writing\n",
qPrint(configFile));
引用了 msg(), openOutputFile(), qPrint(), term() , 以及 Config::writeTemplate().
被这些函数引用 readConfiguration().
◆ generateDiskNames()
static void generateDiskNames |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 9739 行定义.
9751 std::vector<FileEntry> fileEntries;
9752 for (
const auto &fd : *fn)
9754 if (!fd->isReference())
9756 fileEntries.emplace_back(fd->getPath(),fd.get());
9760 size_t size = fileEntries.size();
9764 FileDef *fd = fileEntries[0].fileDef;
9770 std::sort(fileEntries.begin(),
9772 [](
const FileEntry &fe1,
const FileEntry &fe2)
9773 { return fe1.path < fe2.path; }
9778 const FileEntry &first = fileEntries[0];
9779 const FileEntry &last = fileEntries[size-1];
9780 int first_path_size =
static_cast<int>(first.path.size())-1;
9781 int last_path_size =
static_cast<int>(last.path.size())-1;
9784 for (i=0;i<first_path_size && i<last_path_size;i++)
9786 if (first.path[i]==
'/') j=i;
9787 if (first.path[i]!=last.path[i])
break;
9789 if (i==first_path_size && i<last_path_size && last.path[i]==
'/')
9794 else if (i==last_path_size && i<first_path_size && first.path[i]==
'/')
9801 for (
auto &fileEntry : fileEntries)
9803 QCString prefix = fileEntry.path.
right(fileEntry.path.length()-j-1);
9804 fileEntry.fileDef->setName(prefix+fn->fileName());
9806 fileEntry.fileDef->setDiskName(prefix+fn->fileName());
引用了 FileDef::getPath(), Doxygen::inputNameLinkedMap, Definition::isReference(), QCString::right() , 以及 FileDef::setDiskName().
被这些函数引用 parseInput().
◆ generateExampleDocs()
static void generateExampleDocs |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 9338 行定义.
9343 msg(
"Generating docs for example %s...\n",
qPrint(pd->name()));
9345 intf->resetCodeParserState();
9346 QCString n=pd->getOutputFileBase();
9353 if (pd->showLineNo())
9355 lineNoOptStr=
"{lineno}";
9361 pd->documentation()+
"\n\n\\include"+lineNoOptStr+
" "+pd->name(),
引用了 Config_getBool, OutputList::disable(), OutputList::docify(), OutputList::enable(), endFile(), endTitle(), Doxygen::exampleLinkedMap, FALSE, g_outputList, OutputList::generateDoc(), ParserManager::getCodeParser(), OutputGenerator::Man, msg(), Doxygen::parserManager, qPrint(), OutputList::startContents(), startFile(), startTitle() , 以及 TRUE.
被这些函数引用 generateOutput().
◆ generateFileDocs()
static void generateFileDocs |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 8151 行定义.
8157 std::size_t numThreads =
static_cast<std::size_t
>(
Config_getInt(NUM_PROC_THREADS));
8160 numThreads = std::thread::hardware_concurrency();
8167 : fd(fd_), ol(ol_) {}
8172 std::vector< std::future< std::shared_ptr<DocContext> > > results;
8175 for (
const auto &fd : *fn)
8177 bool doc = fd->isLinkableInProject();
8180 auto ctx = std::make_shared<DocContext>(fd.get(),*
g_outputList);
8181 auto processFile = [ctx]() {
8182 msg(
"Generating docs for file %s...\n",
qPrint(ctx->fd->docName()));
8183 ctx->fd->writeDocumentation(ctx->ol);
8186 results.emplace_back(threadPool.queue(processFile));
8190 for (
auto &f : results)
8199 for (
const auto &fd : *fn)
8201 bool doc = fd->isLinkableInProject();
8204 msg(
"Generating docs for file %s...\n",
qPrint(fd->docName()));
引用了 Config_getInt, FileDef::docName(), documentedFiles, g_outputList, Doxygen::inputNameLinkedMap, FileDef::isLinkableInProject(), msg(), qPrint(), ThreadPool::queue() , 以及 FileDef::writeDocumentation().
被这些函数引用 generateOutput().
◆ generateFileSources()
static void generateFileSources |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 7947 行定义.
7961 for (
const auto &fd : *fn)
7963 filesToProcess.insert(fd->absFilePath().str());
7969 for (
const auto &fd : *fn)
7971 if (fd->isSource() && !fd->isReference() &&
7980 msg(
"Generating code for file %s...\n",
qPrint(fd->docName()));
7981 clangParser->parse();
7989 msg(
"Parsing code for file %s...\n",
qPrint(fd->docName()));
7990 clangParser->parse();
7991 fd->parseSource(clangParser.get());
7994 for (
auto incFile : clangParser->filesInSameTU())
7996 if (filesToProcess.find(incFile)!=filesToProcess.end() &&
7997 fd->absFilePath()!=
QCString(incFile) &&
7998 processedFiles.
find(incFile)==processedFiles.end())
8018 processedFiles.insert(incFile);
8022 processedFiles.insert(fd->absFilePath().str());
8029 for (
const auto &fd : *fn)
8031 if (processedFiles.find(fd->absFilePath().str())==processedFiles.end())
8036 msg(
"Generating code for file %s...\n",
qPrint(fd->docName()));
8037 clangParser->parse();
8046 msg(
"Parsing code for file %s...\n",
qPrint(fd->docName()));
8047 clangParser->parse();
8059 std::size_t numThreads =
static_cast<std::size_t
>(
Config_getInt(NUM_PROC_THREADS));
8062 numThreads = std::thread::hardware_concurrency();
8066 msg(
"Generating code files using %zu threads.\n",numThreads);
8067 struct SourceContext
8070 : fd(fd_), generateSourceFile(gen_), ol(ol_) {}
8072 bool generateSourceFile;
8076 std::vector< std::future< std::shared_ptr<SourceContext> > > results;
8079 for (
const auto &fd : *fn)
8082 auto ctx = std::make_shared<SourceContext>(fd.get(),generateSourceFile,*
g_outputList);
8083 if (generateSourceFile)
8085 fd->writeSourceHeader(ctx->ol);
8087 auto processFile = [ctx]() {
8088 if (ctx->generateSourceFile)
8090 msg(
"Generating code for file %s...\n",
qPrint(ctx->fd->docName()));
8094 msg(
"Parsing code for file %s...\n",
qPrint(ctx->fd->docName()));
8097 ctx->fd->getAllIncludeFilesRecursively(filesInSameTu);
8098 if (ctx->generateSourceFile)
8100 ctx->fd->writeSourceBody(ctx->ol,
nullptr);
8105 ctx->fd->parseSource(
nullptr);
8109 results.emplace_back(threadPool.queue(processFile));
8112 for (
auto &f : results)
8115 if (ctx->generateSourceFile)
8117 ctx->fd->writeSourceFooter(ctx->ol);
8125 for (
const auto &fd : *fn)
8128 fd->getAllIncludeFilesRecursively(filesInSameTu);
8131 msg(
"Generating code for file %s...\n",
qPrint(fd->docName()));
8139 msg(
"Parsing code for file %s...\n",
qPrint(fd->docName()));
8140 fd->parseSource(
nullptr);
引用了 FileDef::absFilePath(), Doxygen::clangAssistedParsing, Config_getInt, ClangParser::createTUParser(), FileDef::docName(), QCString::find(), findFileDef(), g_outputList, g_useOutputTemplate, FileDef::generateSourceFile(), FileDef::getAllIncludeFilesRecursively(), Doxygen::inputNameLinkedMap, ClangParser::instance(), Definition::isReference(), FileDef::isSource(), msg(), FileDef::parseSource(), Doxygen::parseSourcesNeeded, qPrint(), ThreadPool::queue(), QCString::str(), Htags::useHtags, FileDef::writeSourceBody(), FileDef::writeSourceFooter() , 以及 FileDef::writeSourceHeader().
被这些函数引用 generateOutput().
◆ generateGroupDocs()
static void generateGroupDocs |
( |
| ) |
|
|
static |
◆ generateNamespaceClassDocs()
在文件 doxygen.cpp 第 9391 行定义.
9393 std::size_t numThreads =
static_cast<std::size_t
>(
Config_getInt(NUM_PROC_THREADS));
9396 numThreads = std::thread::hardware_concurrency();
9403 : cdm(cdm_), ol(ol_) {}
9408 std::vector< std::future< std::shared_ptr<DocContext> > > results;
9410 for (
const auto &cd : classList)
9415 auto ctx = std::make_shared<DocContext>(cdm,*
g_outputList);
9416 auto processFile = [ctx]()
9418 if ( ( ctx->cdm->isLinkableInProject() &&
9419 ctx->cdm->templateMaster()==0
9422 && !ctx->cdm->isHidden() && !ctx->cdm->isEmbeddedInOuterScope()
9425 msg(
"Generating docs for compound %s...\n",
qPrint(ctx->cdm->name()));
9426 ctx->cdm->writeDocumentation(ctx->ol);
9427 ctx->cdm->writeMemberList(ctx->ol);
9429 ctx->cdm->writeDocumentationForInnerClasses(ctx->ol);
9432 results.emplace_back(threadPool.queue(processFile));
9436 for (
auto &f : results)
9444 for (
const auto &cd : classList)
9449 if ( ( cd->isLinkableInProject() &&
9450 cd->templateMaster()==0
9453 && !cd->isHidden() && !cd->isEmbeddedInOuterScope()
9456 msg(
"Generating docs for compound %s...\n",
qPrint(cd->name()));
引用了 Config_getInt, g_outputList, ClassDef::isEmbeddedInOuterScope(), Definition::isHidden(), ClassDef::isLinkableInProject(), msg(), Definition::name(), qPrint(), ThreadPool::queue(), ClassDef::templateMaster(), toClassDefMutable(), ClassDefMutable::writeDocumentation(), ClassDefMutable::writeDocumentationForInnerClasses() , 以及 ClassDefMutable::writeMemberList().
被这些函数引用 generateNamespaceDocs().
◆ generateNamespaceConceptDocs()
◆ generateNamespaceDocs()
static void generateNamespaceDocs |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 9481 行定义.
9490 if (nd->isLinkableInProject())
9495 msg(
"Generating docs for namespace %s\n",
qPrint(nd->name()));
引用了 Config_getBool, g_outputList, generateNamespaceClassDocs(), generateNamespaceConceptDocs(), NamespaceDef::getClasses(), NamespaceDef::getConcepts(), NamespaceDef::getExceptions(), NamespaceDef::getInterfaces(), NamespaceDef::getStructs(), NamespaceDef::isLinkableInProject(), msg(), Definition::name(), Doxygen::namespaceLinkedMap, qPrint(), toNamespaceDefMutable() , 以及 NamespaceDefMutable::writeDocumentation().
被这些函数引用 generateOutput().
◆ generateOutput()
add extra languages for which we can only produce syntax highlighted code
在文件 doxygen.cpp 第 12168 行定义.
12205 if (generateDocbook)
12225 err(
"USE_HTAGS is YES but htags(1) failed. \n");
12227 err(
"htags(1) ended normally but failed to load the filemap. \n");
12234 g_s.
begin(
"Generating style sheet...\n");
12240 static bool serverBasedSearch =
Config_getBool(SERVER_BASED_SEARCH);
12242 g_s.
begin(
"Generating search indices...\n");
12251 if (generateHtml && searchEngine)
12254 Dir searchDir(searchDirName.
str());
12255 if (!searchDir.exists() && !searchDir.mkdir(searchDirName.
str()))
12257 term(
"Could not create search results directory '%s' $PWD='%s'\n",
12261 if (!serverBasedSearch)
12282 if (generateDocbook)
12295 g_s.
begin(
"Generating images for formulas in HTML...\n");
12302 g_s.
begin(
"Generating images for formulas in RTF...\n");
12309 g_s.
begin(
"Generating images for formulas in Docbook...\n");
12314 g_s.
begin(
"Generating example documentation...\n");
12320 g_s.
begin(
"Generating file sources...\n");
12324 g_s.
begin(
"Generating file documentation...\n");
12328 g_s.
begin(
"Generating page documentation...\n");
12332 g_s.
begin(
"Generating group documentation...\n");
12336 g_s.
begin(
"Generating class documentation...\n");
12340 g_s.
begin(
"Generating concept documentation...\n");
12344 g_s.
begin(
"Generating namespace index...\n");
12350 g_s.
begin(
"Generating graph info page...\n");
12355 g_s.
begin(
"Generating directory documentation...\n");
12364 g_s.
begin(
"finalizing index lists...\n");
12368 g_s.
begin(
"writing tag file...\n");
12374 g_s.
begin(
"Generating XML output...\n");
12383 g_s.
begin(
"Generating SQLITE3 output...\n");
12391 g_s.
begin(
"Generating AutoGen DEF output...\n");
12397 g_s.
begin(
"Generating Perl module output...\n");
12401 if (generateHtml && searchEngine && serverBasedSearch)
12403 g_s.
begin(
"Generating search index\n");
12413 if (searchDataFile.
isEmpty())
12415 searchDataFile=
"searchdata.xml";
12428 g_s.
begin(
"Generating output via template engine...\n");
12437 g_s.
begin(
"Combining RTF output...\n");
12440 err(
"An error occurred during post-processing the RTF files!\n");
12447 g_s.
begin(
"Running plantuml with JAVA...\n");
12460 if (generateHtml &&
12464 g_s.
begin(
"Running html help compiler...\n");
12471 err(
"failed to run html help compiler on index.hhp\n");
12480 if ( generateHtml &&
12484 g_s.
begin(
"Running qhelpgenerator...\n");
12494 err(
"failed to run qhelpgenerator on index.qhp\n");
12504 msg(
"lookup cache used %zu/%zu hits=%" PRIu64
" misses=%" PRIu64
"\n",
12512 msg(
"Note: based on cache misses the ideal setting for LOOKUP_CACHE_SIZE is %d at the cost of higher memory usage.\n",cacheParam);
12517 msg(
"Total elapsed time: %.6f seconds\n(of which %.6f seconds waiting for external tools to finish)\n",
12525 msg(
"finished...\n");
引用了 OutputList::add(), addCodeOnlyMappings(), Statistics::begin(), FormulaManager::Bitmap, Doxygen::clangUsrMap, OutputList::cleanup(), cleanUpDoxygen(), computeIdealCacheParam(), Config_getBool, Config_getEnum, Config_getInt, Config_getList, Config_getString, copyExtraFiles(), copyLatexStyleSheet(), copyLogo(), copyStyleSheet(), createJavaScriptSearchIndex(), Dir::currentDirPath(), QCString::data(), Config::deinit(), dumpSymbolMap(), Debug::elapsedTime(), Statistics::end(), err(), Htags::execute(), Dir::exists(), Debug::ExtCmd, FALSE, Doxygen::filterDBFileName, IndexList::finalize(), finalizeSearchIndexer(), finishWarnExit(), g_dumpSymbolMap, g_outputList, g_s, g_successfulRun, g_useOutputTemplate, generateClassDocs(), generateConceptDocs(), generateDEF(), generateDirDocs(), generateExampleDocs(), generateFileDocs(), generateFileSources(), generateGroupDocs(), FormulaManager::generateImages(), generateNamespaceDocs(), generateOutputViaTemplate(), generatePageDocs(), generatePerlMod(), generateSqlite3(), FTVHelp::generateTreeViewImages(), generateXML(), Doxygen::generatingXmlOutput, getQchFileName(), Qhp::getQhpFileName(), Portable::getSysElapsedTime(), FormulaManager::hasFormulas(), Doxygen::indexList, RTFGenerator::init(), ManGenerator::init(), HtmlGenerator::init(), LatexGenerator::init(), DocbookGenerator::init(), initSearchIndexer(), DotManager::instance(), PlantumlManager::instance(), FormulaManager::instance(), SearchIndexIntf::Internal, Portable::isAbsolutePath(), QCString::isEmpty(), Debug::isFlagSet(), Htags::loadFilemap(), Doxygen::lookupCache, Dir::mkdir(), msg(), FormulaManager::On, QCString::prepend(), RTFGenerator::preProcessFileInplace(), Statistics::print(), qPrint(), Dir::remove(), DotManager::run(), PlantumlManager::run(), Doxygen::searchIndex, Dir::setCurrent(), Portable::setShortDir(), OutputList::size(), QCString::sprintf(), QCString::str(), Portable::system(), Portable::sysTimerStart(), Portable::sysTimerStop(), term(), Debug::Time, TRUE, Htags::useHtags, FormulaManager::Vector, warn_flush(), SearchIndexIntf::write(), HtmlGenerator::writeExternalSearchPage(), writeGraphInfo(), writeIndexHierarchy(), writeJavaScriptSearchIndex(), HtmlGenerator::writeSearchData(), HtmlGenerator::writeSearchPage(), OutputList::writeStyleInfo(), HtmlGenerator::writeTabData() , 以及 writeTagFile().
被这些函数引用 main().
◆ generatePageDocs()
static void generatePageDocs |
( |
| ) |
|
|
static |
◆ generateXRefPages()
static void generateXRefPages |
( |
| ) |
|
|
static |
◆ getArg()
static const char* getArg |
( |
int |
argc, |
|
|
char ** |
argv, |
|
|
int & |
optInd |
|
) |
| |
|
static |
◆ getParserForFile()
◆ getQchFileName()
◆ getTemplateArgumentsFromName()
在文件 doxygen.cpp 第 874 行定义.
881 auto alIt = tArgLists.begin();
882 while ((i=name.
find(
"::",p))!=-1 && alIt!=tArgLists.end())
898 return alIt!=tArgLists.end() ?
899 std::make_unique<ArgumentList>(*alIt) :
引用了 ArgumentList::empty(), LinkedMap< T, Hash, KeyEqual, Map >::find(), QCString::find(), getClass(), QCString::left(), Doxygen::namespaceLinkedMap , 以及 ClassDef::templateArguments().
被这些函数引用 addClassToContext(), addConceptToContext() , 以及 addOverloaded().
◆ getTemplateArgumentsInName()
make a dictionary of all template arguments of class cd that are part of the base class name. Example: A template class A with template arguments <R,S,T> that inherits from B<T,T,S> will have T and S in the dictionary.
在文件 doxygen.cpp 第 3987 行定义.
3989 std::map<std::string,int> templateNames;
3991 for (
const Argument &arg : templateArguments)
3993 static const reg::Ex re(R
"(\a[\w:]*)");
3996 for (; it!=
end ; ++it)
3998 const auto &
match = *it;
3999 std::string n =
match.str();
4000 if (n==arg.name.str())
4002 if (templateNames.find(n)==templateNames.end())
4004 templateNames.insert(std::make_pair(n,count));
4009 return templateNames;
引用了 end() , 以及 reg::match().
被这些函数引用 computeTemplateClassRelations(), findBaseClassesForClass() , 以及 findUsedClassesForClass().
◆ inheritDocumentation()
static void inheritDocumentation |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 8555 行定义.
8559 for (
const auto &imd : *mn)
引用了 MemberDef::briefDescription(), Definition::briefFile(), Definition::briefLine(), MemberDefMutable::copyArgumentNames(), Definition::docFile(), Definition::docLine(), MemberDef::documentation(), Definition::inbodyDocumentation(), Definition::inbodyFile(), Definition::inbodyLine(), MemberDef::isDocsForDefinition(), QCString::isEmpty(), Doxygen::memberNameLinkedMap, MemberDef::reimplements(), MemberDefMutable::setBriefDescription(), MemberDefMutable::setDocsForDefinition(), MemberDefMutable::setDocumentation(), MemberDefMutable::setInbodyDocumentation(), MemberDefMutable::setInheritsDocsFrom() , 以及 toMemberDefMutable().
被这些函数引用 parseInput().
◆ initDoxygen()
在文件 doxygen.cpp 第 10610 行定义.
10615 std::setlocale(LC_ALL,
"");
10616 std::setlocale(LC_CTYPE,
"C");
10617 std::setlocale(LC_NUMERIC,
"C");
10625 make_parser_factory<FileCodeParser>());
10627 make_parser_factory<CCodeParser>());
10629 make_parser_factory<PythonCodeParser>());
10631 make_parser_factory<FortranCodeParser>());
10633 make_parser_factory<FortranCodeParserFree>());
10635 make_parser_factory<FortranCodeParserFixed>());
10637 make_parser_factory<VHDLCodeParser>());
10639 make_parser_factory<XMLCodeParser>());
10641 make_parser_factory<SQLCodeParser>());
10643 make_parser_factory<FileCodeParser>());
10645 make_parser_factory<LexCodeParser>());
10654 #ifdef USE_LIBCLANG
引用了 Doxygen::clangUsrMap, Doxygen::classLinkedMap, Doxygen::conceptLinkedMap, Portable::correct_path(), Doxygen::diaFileNameLinkedMap, Doxygen::dirLinkedMap, Doxygen::dotFileNameLinkedMap, Doxygen::exampleLinkedMap, Doxygen::exampleNameLinkedMap, Doxygen::functionNameLinkedMap, g_compoundKeywords, Portable::getenv(), Doxygen::globalScope, Doxygen::groupLinkedMap, Doxygen::hiddenClassLinkedMap, Doxygen::imageNameLinkedMap, Doxygen::includeNameLinkedMap, Doxygen::indexList, initClassMemberIndices(), initDefaultExtensionMapping(), initFileMemberIndices(), initNamespaceMemberIndices(), initResources(), Doxygen::inputNameLinkedMap, QCString::isEmpty(), Doxygen::memberNameLinkedMap, Doxygen::mscFileNameLinkedMap, Doxygen::namespaceLinkedMap, Doxygen::pageLinkedMap, Doxygen::parserManager, ParserManager::registerParser(), Portable::setenv(), Debug::startTimer() , 以及 Doxygen::symbolMap.
被这些函数引用 main().
◆ initResources()
◆ isClassSection()
static bool isClassSection |
( |
const Entry * |
root | ) |
|
|
static |
◆ isRecursiveBaseClass()
static bool isRecursiveBaseClass |
( |
const QCString & |
scope, |
|
|
const QCString & |
name |
|
) |
| |
|
static |
◆ isSpecialization()
◆ isSymbolHidden()
static bool isSymbolHidden |
( |
const Definition * |
d | ) |
|
|
static |
◆ isVarWithConstructor()
static bool isVarWithConstructor |
( |
const Entry * |
root | ) |
|
|
static |
Returns TRUE iff type is a class within scope context. Used to detect variable declarations that look like function prototypes.
在文件 doxygen.cpp 第 2641 行定义.
2644 bool typeIsClass =
false;
2645 bool typePtrType =
false;
2658 else if ((fd !=
nullptr) && (fd->
name().
right(2)==
".c" || fd->
name().
right(2)==
".h"))
2677 typePtrType = type.
find(
'*')!=-1 || type.
find(
'&')!=-1;
2681 typeIsClass = resolver.resolveClass(ctx,type)!=0;
2682 if (!typeIsClass && (ti=type.
find(
'<'))!=-1)
2684 typeIsClass=resolver.resolveClass(ctx,type.
left(ti))!=0;
2699 static const reg::Ex initChars(R
"([\d"'&*!^]+)");
2703 std::string name = a.
name.
str();
2733 std::string atype = a.
type.
str();
2740 if (resType.empty()) resType=atype;
2741 static const reg::Ex idChars(R
"(\a\w*)");
2744 resType=
match.str();
2746 if (resType==
"int" || resType==
"long" ||
2747 resType==
"float" || resType==
"double" ||
2748 resType==
"char" || resType==
"void" ||
2749 resType==
"signed" || resType==
"unsigned" ||
2750 resType==
"const" || resType==
"volatile" )
2766 static void addVariable(
const Entry *root,
int isFuncPtr=-1)
2772 " type='%s' name='%s' args='%s' bodyLine=%d mGrpId=%d relates='%s'\n",
2785 if (type.
isEmpty() && name.
find(
"operator")==-1 &&
2786 (name.
find(
'*')!=-1 || name.
find(
'&')!=-1))
2793 std::string sargs = args.
str();
2794 static const reg::Ex reName(R
"(\a\w*)");
2799 sargs =
match.suffix().str();
2800 size_t j = sargs.find(
')');
2801 if (j!=std::string::npos) args=sargs.substr(0,j);
2813 int ai = type.
find(
'[',i);
2819 else if (type.
find(
')',i)!=-1)
2847 bool isRelated=
FALSE;
2848 bool isMemberOf=
FALSE;
2856 if (type==
"friend class" || type==
"friend struct" ||
2857 type==
"friend union")
2885 else if (type.
left(8)==
"typedef ")
2887 else if (type.
left(7)==
"friend ")
2893 else if (type.
find(
"sequence<") != -1)
2895 else if (type.
find(
"dictionary<") != -1)
2921 int si=scope.
find(
'@');
2925 static bool inlineSimpleStructs =
Config_getBool(INLINE_SIMPLE_STRUCTS);
2926 if (si!=-1 && !inlineSimpleStructs)
2930 pScope = scope.
left(std::max(si-2,0));
2932 pScope.
prepend(annScopePrefix);
2933 else if (annScopePrefix.
length()>2)
2934 pScope=annScopePrefix.
left(annScopePrefix.
length()-2);
2935 if (name.
at(0)!=
'@')
2988 static void buildTypedefList(
const Entry *root)
2998 for (
const auto &e : root->
children())
3000 buildTypedefList(e.get());
3006 static void buildSequenceList(
const Entry *root)
3015 for (
const auto &e : root->
children())
3017 buildSequenceList(e.get());
3023 static void buildDictionaryList(
const Entry *root)
3032 for (
const auto &e : root->
children())
3034 buildDictionaryList(e.get());
3041 static void buildVarList(
const Entry *root)
3059 addVariable(root,isFuncPtr);
3061 for (
const auto &e : root->
children())
3063 buildVarList(e.get());
3071 static void addInterfaceOrServiceToServiceOrSingleton(
3089 md->setTagInfo(root->
tagInfo());
3090 md->setMemberClass(cd);
3092 md->setDocsForDefinition(
false);
3096 md->setMemberSpecifiers(root->
spec);
3097 md->setMemberGroupId(root->
mGrpId);
3099 md->setLanguage(root->
lang);
3102 md->addSectionsToDefinition(root->
anchors);
3104 md->setDefinition(def);
3111 " Interface Member:\n"
3112 " '%s' '%s' proto=%d\n"
3135 md->setRefItems(root->
sli);
3142 static void buildInterfaceAndServiceList(
const Entry *root)
3148 "EXPORTED_INTERFACE_SEC:\n"
3149 " '%s' '%s'::'%s' '%s' relates='%s' relatesType='%d' file='%s' line='%d' bodyLine='%d' #tArgLists=%d mGrpId=%d spec=%lld proto=%d docFile=%s\n",
3177 addInterfaceOrServiceToServiceOrSingleton(root,cd,rname);
3187 "Illegal member name found.");
3195 for (
const auto &e : root->
children()) buildInterfaceAndServiceList(e.get());
3233 name.
left(9)!=
"operator " &&
3234 (i=name.
find(
'<'))!=-1 &&
3235 (j=name.
find(
'>'))!=-1 &&
3236 (j!=i+2 || name.
at(i+1)!=
'=')
3262 md->setTagInfo(root->
tagInfo());
3263 md->setMemberClass(cd);
3265 md->setDocsForDefinition(!root->
proto);
3269 md->setMemberSpecifiers(spec);
3270 md->setMemberGroupId(root->
mGrpId);
3272 md->setLanguage(root->
lang);
3273 md->setRequiresClause(root->
req);
3274 md->setId(root->
id);
3277 md->addSectionsToDefinition(root->
anchors);
3282 if (scopeSeparator!=
"::")
3284 qualScope =
substitute(qualScope,
"::",scopeSeparator);
3289 scopeSeparator=
"::";
3307 def=type+
" "+qualScope+scopeSeparator+name;
3311 def=qualScope+scopeSeparator+name;
3315 md->setDefinition(def);
3323 " '%s' '%s'::'%s' '%s' proto=%d\n"
3340 md->setRefItems(root->
sli);
3367 md->setTagInfo(root->
tagInfo());
3368 md->setLanguage(root->
lang);
3369 md->setId(root->
id);
3374 md->setDocsForDefinition(!root->
proto);
3380 md->addSectionsToDefinition(root->
anchors);
3381 md->setMemberSpecifiers(root->
spec);
3382 md->setMemberGroupId(root->
mGrpId);
3383 md->setRequiresClause(root->
req);
3412 def=root->
type+
" "+scope+name;
3419 " Global Function:\n"
3420 " '%s' '%s'::'%s' '%s' proto=%d\n"
3429 md->setDefinition(def);
3439 md->setRefItems(root->
sli);
3443 md->setNamespace(nd);
3469 static void buildFunctionList(
const Entry *root)
3475 " '%s' '%s'::'%s' '%s' relates='%s' relatesType='%d' file='%s' line='%d' bodyLine='%d' #tArgLists=%d mGrpId=%d spec=%lld proto=%d docFile=%s\n",
3492 bool isFriend=root->
type.
find(
"friend ")!=-1;
3505 int memIndex=rname.
findRev(
"::");
3508 if (cd && scope+
"::"==rname.
left(scope.
length()+2))
3514 bool isMember=
FALSE;
3517 int ts=rname.
find(
'<');
3518 int te=rname.
find(
'>');
3519 if (memIndex>0 && (ts==-1 || te==-1))
3536 isMember=memIndex<ts || memIndex>te;
3547 addMethodToClass(root,cd,root->
type,rname,root->
args,isFriend,
3569 for (
const auto &imd : *mn)
3582 fullScope.
prepend(parentScope);
3588 if (mnd) nsName = mnd->
name();
3589 if (rnd) rnsName = rnd->
name();
3597 bool sameNumTemplateArgs =
TRUE;
3598 bool matchingReturnTypes =
TRUE;
3599 bool sameRequiresClause =
TRUE;
3604 sameNumTemplateArgs =
FALSE;
3608 matchingReturnTypes =
FALSE;
3612 sameRequiresClause =
FALSE;
3616 bool staticsInDifferentFiles =
3623 sameNumTemplateArgs &&
3624 matchingReturnTypes &&
3625 sameRequiresClause &&
3626 !staticsInDifferentFiles
3630 if (!root->
groups.empty() && !root->
groups.front().groupname.isEmpty())
3637 found=(mnd && rnd && nsName==rnsName) ||
3638 ((mnd==0 && rnd==0 && mfd!=0 &&
3643 if (!found && gd && gd==md->
getGroupDef() && nsName==rnsName)
3731 addGlobalFunction(root,rname,scope);
3755 "Illegal member name found."
3759 for (
const auto &e : root->
children()) buildFunctionList(e.get());
3764 static void findFriends()
3775 for (
const auto &ifmd : *fn)
3779 for (
const auto &immd : *mn)
引用了 Entry::argList, QCString::at(), checkIfTypedef(), Entry::COMPOUND_MASK, Argument::defval, ArgumentList::empty(), FALSE, Entry::fileDef(), LinkedMap< T, Hash, KeyEqual, Map >::find(), QCString::find(), findAndRemoveWord(), QCString::isEmpty(), QCString::left(), QCString::length(), reg::match(), Argument::name, FileDef::name(), Entry::name, Doxygen::namespaceLinkedMap, Entry::parent(), SymbolResolver::resolveClass(), resolveTypeDef(), QCString::right(), reg::search(), Entry::section, QCString::str(), TRUE, Argument::type , 以及 Entry::type.
◆ make_parser_factory()
template<class T >
std::function< std::unique_ptr<T>) > make_parser_factory |
( |
| ) |
|
在文件 doxygen.cpp 第 10605 行定义.
10607 return []() {
return std::make_unique<T>(); };
◆ mergeCategories()
static void mergeCategories |
( |
| ) |
|
|
static |
◆ organizeSubGroups()
static void organizeSubGroups |
( |
const Entry * |
root | ) |
|
|
static |
◆ organizeSubGroupsFiltered()
static void organizeSubGroupsFiltered |
( |
const Entry * |
root, |
|
|
bool |
additional |
|
) |
| |
|
static |
◆ parseFile()
在文件 doxygen.cpp 第 9834 行定义.
9840 int ei = fileName.
findRev(
'.');
9847 extension =
".no_extension";
9858 for (
const auto &s : includePath)
9864 msg(
"Preprocessing %s...\n",
qPrint(fn));
9873 if (preBuf.data() && preBuf.curPos()>0 && *(preBuf.data()+preBuf.curPos()-1)!=
'\n')
9875 preBuf.addChar(
'\n');
9878 BufStr convBuf(preBuf.curPos()+1024);
9883 convBuf.addChar(
'\0');
9885 std::shared_ptr<Entry> fileRoot = std::make_shared<Entry>();
9889 if (newTU) clangParser->
parse();
9892 parser.
parseInput(fileName,convBuf.data(),fileRoot,clangParser);
9893 fileRoot->setFileDef(fd);
引用了 FileInfo::absFilePath(), BufStr::addChar(), Preprocessor::addSearchDir(), Config_getBool, Config_getList, convertCppComments(), BufStr::curPos(), BufStr::data(), QCString::findRev(), QCString::length(), msg(), OutlineParserInterface::needsPreprocessing(), ClangTUParser::parse(), OutlineParserInterface::parseInput(), Preprocessor::processFile(), qPrint(), readInputFile(), QCString::right(), FileInfo::size(), QCString::str() , 以及 ClangTUParser::switchToFile().
被这些函数引用 parseFilesMultiThreading() , 以及 parseFilesSingleThreading().
◆ parseFilesMultiThreading()
static void parseFilesMultiThreading |
( |
const std::shared_ptr< Entry > & |
root | ) |
|
|
static |
parse the list of input files
在文件 doxygen.cpp 第 9898 行定义.
9909 filesToProcess.insert(s);
9912 std::mutex processedFilesLock;
9914 std::size_t numThreads =
static_cast<std::size_t
>(
Config_getInt(NUM_PROC_THREADS));
9917 numThreads = std::thread::hardware_concurrency();
9919 msg(
"Processing input using %zu threads.\n",numThreads);
9921 using FutureType = std::vector< std::shared_ptr<Entry> >;
9922 std::vector< std::future< FutureType > > results;
9931 auto processFile = [s,&filesToProcess,&processedFilesLock,&processedFiles]() {
9933 std::vector< std::shared_ptr<Entry> > roots;
9937 auto fileRoot {
parseFile(*parser.get(),fd_l,s.c_str(),clangParser.get(),
true) };
9938 roots.push_back(fileRoot);
9942 for (
auto incFile : clangParser->filesInSameTU())
9944 if (filesToProcess.find(incFile)!=filesToProcess.end())
9946 bool needsToBeProcessed;
9948 std::lock_guard<std::mutex> lock(processedFilesLock);
9949 needsToBeProcessed = processedFiles.find(incFile)==processedFiles.end();
9950 if (needsToBeProcessed) processedFiles.insert(incFile);
9952 if (incFile!=s && needsToBeProcessed)
9958 fileRoot =
parseFile(*parser.get(),ifd,incFile.c_str(),clangParser.get(),
false);
9959 roots.push_back(fileRoot);
9967 results.emplace_back(threadPool.queue(processFile));
9971 for (
auto &f : results)
9976 root->moveToSubEntryAndKeep(e);
9983 if (processedFiles.find(s)==processedFiles.end())
9986 auto processFile = [s]() {
9988 std::vector< std::shared_ptr<Entry> > roots;
9992 auto fileRoot =
parseFile(*parser.get(),fd,s.c_str(),clangParser.get(),
true);
9993 roots.push_back(fileRoot);
9997 results.emplace_back(threadPool.queue(processFile));
10001 for (
auto &f : results)
10006 root->moveToSubEntryAndKeep(e);
10013 std::size_t numThreads = std::thread::hardware_concurrency();
10014 msg(
"Processing input using %zu threads.\n",numThreads);
10016 using FutureType = std::shared_ptr<Entry>;
10017 std::vector< std::future< FutureType > > results;
10021 auto processFile = [s]() {
10025 auto fileRoot =
parseFile(*parser.get(),fd,s.c_str(),
nullptr,
true);
10029 results.emplace_back(threadPool.queue(processFile));
10032 for (
auto &f : results)
10034 root->moveToSubEntryAndKeep(f.get());
引用了 ASSERT, Doxygen::clangAssistedParsing, Config_getInt, ClangParser::createTUParser(), findFileDef(), g_inputFiles, getParserForFile(), Doxygen::inputNameLinkedMap, ClangParser::instance(), Definition::isReference(), FileDef::isSource(), msg(), parseFile() , 以及 ThreadPool::queue().
被这些函数引用 parseInput().
◆ parseFilesSingleThreading()
static void parseFilesSingleThreading |
( |
const std::shared_ptr< Entry > & |
root | ) |
|
|
static |
parse the list of input files
在文件 doxygen.cpp 第 10040 行定义.
10051 filesToProcess.insert(s);
10064 auto fileRoot =
parseFile(*parser.get(),fd,s.c_str(),clangParser.get(),
true);
10065 root->moveToSubEntryAndKeep(fileRoot);
10066 processedFiles.insert(s);
10070 for (
auto incFile : clangParser->filesInSameTU())
10073 if (filesToProcess.find(incFile)!=filesToProcess.end() &&
10074 processedFiles.find(incFile)==processedFiles.end())
10080 fileRoot =
parseFile(*parser.get(),ifd,incFile.c_str(),clangParser.get(),
false);
10081 root->moveToSubEntryAndKeep(fileRoot);
10082 processedFiles.insert(incFile);
10091 if (processedFiles.find(s)==processedFiles.end())
10097 auto fileRoot =
parseFile(*parser.get(),fd,s.c_str(),clangParser.get(),
true);
10098 root->moveToSubEntryAndKeep(fileRoot);
10099 processedFiles.insert(s);
10111 std::unique_ptr<OutlineParserInterface> parser {
getParserForFile(s.c_str()) };
10112 std::shared_ptr<Entry> fileRoot =
parseFile(*parser.get(),fd,s.c_str(),
nullptr,
true);
10113 root->moveToSubEntryAndKeep(fileRoot);
引用了 ASSERT, Doxygen::clangAssistedParsing, ClangParser::createTUParser(), findFileDef(), g_inputFiles, getParserForFile(), Doxygen::inputNameLinkedMap, ClangParser::instance(), Definition::isReference(), FileDef::isSource() , 以及 parseFile().
被这些函数引用 parseInput().
◆ parseInput()
在文件 doxygen.cpp 第 11558 行定义.
11568 QCString versionString = getFullVersion();
11569 msg(
"Doxygen version used: %s\n",
qPrint(versionString));
11575 if (outputDirectory.
isEmpty())
11581 Dir dir(outputDirectory.
str());
11585 if (!dir.mkdir(outputDirectory.
str()))
11587 err(
"tag OUTPUT_DIRECTORY: Output directory '%s' does not "
11588 "exist and cannot be created\n",
qPrint(outputDirectory));
11594 msg(
"Notice: Output directory '%s' does not exist. "
11595 "I have created it for you.\n",
qPrint(outputDirectory));
11597 dir.setPath(outputDirectory.
str());
11608 if (cacheSize<0) cacheSize=0;
11609 if (cacheSize>9) cacheSize=9;
11610 uint lookupSize = 65536 << cacheSize;
11634 bool generateEclipseHelp =
Config_getBool(GENERATE_ECLIPSEHELP);
11648 if (generateDocbook)
11706 newFontPath+=curFontPath;
11724 bool defaultLayoutUsed =
FALSE;
11725 if (layoutFileName.
isEmpty())
11728 defaultLayoutUsed =
TRUE;
11734 msg(
"Parsing layout file %s...\n",
qPrint(layoutFileName));
11737 else if (!defaultLayoutUsed)
11739 warn_uncond(
"failed to open layout file '%s' for reading!\n",
qPrint(layoutFileName));
11748 if (generateHtml) exclPatterns.push_back(htmlOutput.
str());
11749 if (generateDocbook) exclPatterns.push_back(docbookOutput.
str());
11750 if (generateXml) exclPatterns.push_back(xmlOutput.
str());
11751 if (generateLatex) exclPatterns.push_back(latexOutput.
str());
11752 if (generateRtf) exclPatterns.push_back(rtfOutput.
str());
11753 if (generateMan) exclPatterns.push_back(manOutput.
str());
11784 std::shared_ptr<Entry> root = std::make_shared<Entry>();
11785 msg(
"Reading and parsing tag files\n");
11788 for (
const auto &s : tagFileList)
11814 g_s.
begin(
"Building macro definition list...\n");
11818 g_s.
begin(
"Building group list...\n");
11823 g_s.
begin(
"Building directory list...\n");
11828 g_s.
begin(
"Building namespace list...\n");
11833 g_s.
begin(
"Building file list...\n");
11837 g_s.
begin(
"Building class list...\n");
11841 g_s.
begin(
"Building concept list...\n");
11849 g_s.
begin(
"Computing nesting relations for classes...\n");
11862 g_s.
begin(
"Associating documentation with classes...\n");
11866 g_s.
begin(
"Associating documentation with concepts...\n");
11870 g_s.
begin(
"Building example list...\n");
11874 g_s.
begin(
"Searching for enumerations...\n");
11882 g_s.
begin(
"Searching for documented typedefs...\n");
11883 buildTypedefList(root.get());
11888 g_s.
begin(
"Searching for documented sequences...\n");
11889 buildSequenceList(root.get());
11892 g_s.
begin(
"Searching for documented dictionaries...\n");
11893 buildDictionaryList(root.get());
11897 g_s.
begin(
"Searching for members imported via using declarations...\n");
11904 g_s.
begin(
"Searching for included using directives...\n");
11908 g_s.
begin(
"Searching for documented variables...\n");
11909 buildVarList(root.get());
11912 g_s.
begin(
"Building interface member list...\n");
11913 buildInterfaceAndServiceList(root.get());
11915 g_s.
begin(
"Building member list...\n");
11916 buildFunctionList(root.get());
11919 g_s.
begin(
"Searching for friends...\n");
11923 g_s.
begin(
"Searching for documented defines...\n");
11927 g_s.
begin(
"Computing class inheritance relations...\n");
11932 g_s.
begin(
"Computing class usage relations...\n");
11938 g_s.
begin(
"Searching for tag less structs...\n");
11943 g_s.
begin(
"Flushing cached template relations that have become invalid...\n");
11947 g_s.
begin(
"Computing class relations...\n");
11958 g_s.
begin(
"Add enum values to enums...\n");
11963 g_s.
begin(
"Searching for member function documentation...\n");
11974 g_s.
begin(
"Creating members for template instances...\n");
11978 g_s.
begin(
"Building page list...\n");
11982 g_s.
begin(
"Search for main page...\n");
11987 g_s.
begin(
"Computing page relations...\n");
11992 g_s.
begin(
"Determining the scope of groups...\n");
12007 return qstricmp(c1->name(), c2->name())<0;
12011 int i =
qstricmp(c1->className(), c2->className());
12012 return i==0 ?
qstricmp(c1->name(), c2->name())<0 : i<0;
12018 return qstricmp(n1->name(),n2->name())<0;
12023 return qstricmp(c1->name(),c2->name())<0;
12047 g_s.
begin(
"Determining which enums are documented\n");
12051 g_s.
begin(
"Computing member relations...\n");
12056 g_s.
begin(
"Building full member lists recursively...\n");
12060 g_s.
begin(
"Adding members to member groups.\n");
12066 g_s.
begin(
"Distributing member group documentation.\n");
12071 g_s.
begin(
"Computing member references...\n");
12077 g_s.
begin(
"Inheriting documentation...\n");
12084 g_s.
begin(
"Generating disk names...\n");
12088 g_s.
begin(
"Adding source references...\n");
12092 g_s.
begin(
"Adding xrefitems...\n");
12097 g_s.
begin(
"Sorting member lists...\n");
12101 g_s.
begin(
"Setting anonymous enum type...\n");
12107 g_s.
begin(
"Computing dependencies between directories...\n");
12112 g_s.
begin(
"Generating citations page...\n");
12116 g_s.
begin(
"Counting members...\n");
12120 g_s.
begin(
"Counting data structures...\n");
12124 g_s.
begin(
"Resolving user defined references...\n");
12128 g_s.
begin(
"Finding anchors and sections in the documentation...\n");
12132 g_s.
begin(
"Transferring function references...\n");
12136 g_s.
begin(
"Combining using relations...\n");
12140 g_s.
begin(
"Adding members to index pages...\n");
12145 g_s.
begin(
"Correcting members for VHDL...\n");
12149 g_s.
begin(
"Computing tooltip texts...\n");
12157 [](
const auto &g1,
const auto &g2)
12158 {
return g1->groupTitle() < g2->groupTitle(); });
12162 gd->sortSubGroups();
引用了 Dir::absPath(), addEnumValuesToEnums(), IndexList::addIndex(), addListReferences(), addMembersToIndex(), addMembersToMemberGroup(), addSourceReferences(), addSTLSupport(), addToIndices(), begin(), Statistics::begin(), buildClassDocList(), buildClassList(), buildCompleteMemberLists(), buildConceptDocList(), buildConceptList(), buildDefineList(), buildDirectories(), buildExampleList(), buildFileList(), buildGroupList(), buildListOfUsingDecls(), buildNamespaceList(), buildPageList(), checkPageRelations(), Doxygen::clangAssistedParsing, Doxygen::classLinkedMap, cleanUpDoxygen(), Cache< K, V >::clear(), combineUsingRelations(), computeClassRelations(), computeDirDependencies(), computeMemberReferences(), computeMemberRelations(), computePageRelations(), computeTemplateClassRelations(), computeTooltipTexts(), VhdlDocGen::computeVhdlComponentRelations(), Doxygen::conceptLinkedMap, Config_getBool, Config_getInt, Config_getList, Config_getString, Config_updateList, Config_updateString, countDataStructures(), countMembers(), createOutputDirectory(), createTemplateInstanceMembers(), Dir::currentDirPath(), distributeMemberGroupDocumentation(), end(), Statistics::end(), err(), FileInfo::exists(), Dir::exists(), exitDoxygen(), FALSE, Doxygen::filterDBFileName, findClassEntries(), findDefineDocumentation(), findDirDocumentation(), findDocumentedEnumValues(), findEnumDocumentation(), findEnums(), findGroupScope(), findIncludedUsingDirectives(), findInheritedTemplateInstances(), findMainPage(), findMainPageTagFiles(), findMemberDocumentation(), findObjCMethodDefinitions(), findSectionsInDocumentation(), findTagLessClasses(), findUsedTemplateInstances(), findUsingDeclarations(), findUsingDeclImports(), findUsingDirectives(), flushCachedTemplateRelations(), flushUnresolvedRelations(), Doxygen::functionNameLinkedMap, g_classEntries, g_s, g_useOutputTemplate, g_usingDeclarations, generateDiskNames(), CitationManager::generatePage(), generateXRefPages(), Portable::getenv(), getPrefixIndex(), Doxygen::groupLinkedMap, Doxygen::hiddenClassLinkedMap, Doxygen::indexList, inheritDocumentation(), LayoutDocManager::init(), IndexList::initialize(), CitationManager::instance(), FormulaManager::instance(), LayoutDocManager::instance(), QCString::isEmpty(), Doxygen::lookupCache, Doxygen::memberNameLinkedMap, mergeCategories(), Dir::mkdir(), msg(), Doxygen::namespaceLinkedMap, organizeSubGroups(), LayoutDocManager::parse(), parseFilesMultiThreading(), parseFilesSingleThreading(), Portable::pathListSeparator(), Portable::pid(), QCString::prepend(), qPrint(), qstricmp(), FormulaManager::readFormulas(), readTagFile(), resolveClassNestingRelations(), resolveUserReferences(), searchInputFiles(), setAnonymousEnumType(), Portable::setenv(), Dir::setPath(), sortMemberLists(), GroupDef::sortSubGroups(), QCString::sprintf(), stopDoxygen(), QCString::str(), transferFunctionDocumentation(), transferFunctionReferences(), transferRelatedFunctionDocumentation(), TRUE, vhdlCorrectMemberProperties() , 以及 warn_uncond().
被这些函数引用 main().
◆ printNavTree()
void printNavTree |
( |
Entry * |
root, |
|
|
int |
indent |
|
) |
| |
◆ processTagLessClasses()
Look through the members of class cd and its public members.
If there is a member m of a tag less struct/union, then we create a duplicate of the struct/union with the name of the member to identify it. So if cd has name S, then the tag less struct/union will get name S.m Since tag less structs can be nested we need to call this function recursively. Later on we need to patch the member types so we keep track of the hierarchy of classes we create.
在文件 doxygen.cpp 第 1544 行定义.
1556 for (
const auto &md : *ml)
1559 if (type.
find(
"::@")!=-1)
1565 if (type.
find(icd->name())!=-1)
1568 if (md->isAnonymous()) name =
"__unnamed" + name.
right(name.
length()-1)+
"__";
1588 for (
const auto &pmd : *pml)
1591 if (pmdm && pmd->name()==md->name())
引用了 createTagLessInstance(), LinkedRefMap< T, Hash, KeyEqual, Map >::empty(), QCString::find(), ClassDef::getClasses(), ClassDef::getMemberList(), QCString::isEmpty(), QCString::length(), MemberListType_pubAttribs, Definition::name(), QCString::prepend(), QCString::right(), MemberDefMutable::setAccessorType(), ClassDefMutable::setTagLessReference(), substitute() , 以及 toMemberDefMutable().
被这些函数引用 findTagLessClasses().
◆ readAliases()
在文件 doxygen.cpp 第 10432 行定义.
10436 for (
const auto &al : aliasList)
10439 int i=alias.find(
'=');
10454 it->second=value.
str();
引用了 Doxygen::aliasMap, Config_getList, end(), escapeAliases(), expandAliases(), QCString::find(), QCString::isEmpty(), QCString::left(), QCString::length(), QCString::right(), QCString::str() , 以及 QCString::stripWhiteSpace().
被这些函数引用 adjustConfiguration().
◆ readConfiguration()
void readConfiguration |
( |
int |
argc, |
|
|
char ** |
argv |
|
) |
| |
在文件 doxygen.cpp 第 10738 行定义.
10740 QCString versionString = getFullVersion();
10752 bool genConfig=
FALSE;
10753 bool shortList=
FALSE;
10754 bool diffList=
FALSE;
10755 bool updateConfig=
FALSE;
10757 bool quiet =
false;
10758 while (optInd<argc && argv[optInd][0]==
'-' &&
10759 (
isalpha(argv[optInd][1]) || argv[optInd][1]==
'?' ||
10760 argv[optInd][1]==
'-')
10763 switch(argv[optInd][1])
10769 if (optInd+1>=argc)
10771 layoutName=
"DoxygenLayout.xml";
10775 layoutName=argv[optInd+1];
10782 debugLabel=
getArg(argc,argv,optInd);
10792 err(
"option \"-d\" has unknown debug specifier: \"%s\".\n",
qPrint(debugLabel));
10808 formatName=
getArg(argc,argv,optInd);
10811 err(
"option \"-e\" is missing format specifier rtf.\n");
10817 if (optInd+1>=argc)
10819 err(
"option \"-e rtf\" is missing an extensions file name\n");
10832 err(
"option \"-e\" has invalid format specifier.\n");
10837 listName=
getArg(argc,argv,optInd);
10840 err(
"option \"-f\" is missing list specifier.\n");
10846 if (optInd+1>=argc)
10848 err(
"option \"-f emoji\" is missing an output file name\n");
10861 err(
"option \"-f\" has invalid list specifier.\n");
10866 formatName=
getArg(argc,argv,optInd);
10869 err(
"option \"-w\" is missing format specifier rtf, html or latex\n");
10875 if (optInd+1>=argc)
10877 err(
"option \"-w rtf\" is missing a style sheet file name\n");
10893 if (optInd+4<argc ||
FileInfo(
"Doxyfile").exists())
10899 err(
"error opening or reading configuration file %s!\n",argv[optInd+4]);
10904 if (optInd+3>=argc)
10906 err(
"option \"-w html\" does not have enough arguments\n");
10940 if (optInd+4<argc ||
FileInfo(
"Doxyfile").exists())
10945 err(
"error opening or reading configuration file %s!\n",argv[optInd+4]);
10950 if (optInd+3>=argc)
10952 err(
"option \"-w latex\" does not have enough arguments\n");
10985 err(
"Illegal format specifier \"%s\": should be one of rtf, html or latex\n",
qPrint(formatName));
11004 if (
qstrcmp(&argv[optInd][2],
"help")==0)
11006 usage(argv[0],versionString);
11009 else if (
qstrcmp(&argv[optInd][2],
"version")==0)
11015 else if ((
qstrcmp(&argv[optInd][2],
"Version")==0) ||
11016 (
qstrcmp(&argv[optInd][2],
"VERSION")==0))
11024 err(
"Unknown option \"-%s\"\n",&argv[optInd][1]);
11025 usage(argv[0],versionString);
11030 setvbuf(stdout,NULL,_IONBF,0);
11036 msg(
"Warning: this option activates output generation via Django like template files. "
11037 "This option is scheduled for doxygen 2.0, is currently incomplete and highly experimental! "
11038 "Only use if you are a doxygen developer\n");
11043 usage(argv[0],versionString);
11047 err(
"Unknown option \"-%c\"\n",argv[optInd][1]);
11048 usage(argv[0],versionString);
11060 FileInfo configFileInfo1(
"Doxyfile"),configFileInfo2(
"doxyfile");
11063 if (configFileInfo1.exists())
11065 configName=
"Doxyfile";
11067 else if (configFileInfo2.exists())
11069 configName=
"doxyfile";
11071 else if (genConfig)
11073 configName=
"Doxyfile";
11077 err(
"Doxyfile not found and no input file specified!\n");
11078 usage(argv[0],versionString);
11085 if (fi.exists() ||
qstrcmp(argv[optInd],
"-")==0 || genConfig)
11087 configName=argv[optInd];
11091 err(
"configuration file %s not found!\n",argv[optInd]);
11092 usage(argv[0],versionString);
11113 err(
"could not open or read configuration file %s!\n",
qPrint(configName));
引用了 FileInfo::absFilePath(), Config::checkAndCorrect(), cleanUpDoxygen(), compareDoxyfile(), Config_getBool, Config_getEnum, Config_updateBool, QCString::data(), devUsage(), err(), FileInfo::exists(), FALSE, g_dumpSymbolMap, g_useOutputTemplate, generateConfigFile(), generateTemplateFiles(), getArg(), Config::init(), EmojiEntityMapper::instance(), reg::isalpha(), QCString::isEmpty(), msg(), openOutputFile(), Config::parse(), Config::postProcess(), qPrint(), qstrcmp(), qstricmp(), Debug::setFlag(), setPerlModDoxyfile(), setTranslator(), QCString::str(), TRUE, Config::updateObsolete(), usage(), version(), writeDefaultLayoutFile(), EmojiEntityMapper::writeEmojiFile(), RTFGenerator::writeExtensionsFile(), HtmlGenerator::writeFooterFile(), LatexGenerator::writeFooterFile(), HtmlGenerator::writeHeaderFile(), LatexGenerator::writeHeaderFile(), RTFGenerator::writeStyleSheetFile(), HtmlGenerator::writeStyleSheetFile() , 以及 LatexGenerator::writeStyleSheetFile().
被这些函数引用 main().
◆ readDir()
static void readDir |
( |
FileInfo * |
fi, |
|
|
FileNameLinkedMap * |
fnMap, |
|
|
StringUnorderedSet * |
exclSet, |
|
|
const StringVector * |
patList, |
|
|
const StringVector * |
exclPatList, |
|
|
StringVector * |
resultList, |
|
|
StringUnorderedSet * |
resultSet, |
|
|
bool |
errorIfNotExist, |
|
|
bool |
recursive, |
|
|
StringUnorderedSet * |
killSet, |
|
|
StringSet * |
paths |
|
) |
| |
|
static |
在文件 doxygen.cpp 第 10193 行定义.
10207 if (paths && !dirName.empty())
10209 paths->insert(dirName);
10215 if (dirName.empty())
10235 for (
const auto &dirEntry : dir.iterator())
10238 if (exclSet==0 || exclSet->find(cfi.absFilePath())==exclSet->end())
10241 if (!cfi.exists() || !cfi.isReadable())
10243 if (errorIfNotExist)
10245 warn_uncond(
"source '%s' is not a readable file or directory... skipping.\n",cfi.absFilePath().c_str());
10248 else if (cfi.isFile() &&
10251 (exclPatList==0 || !
patternMatch(cfi,*exclPatList)) &&
10252 (killSet==0 || killSet->find(cfi.absFilePath())==killSet->end())
10255 std::string name=cfi.fileName();
10256 std::string path=cfi.dirPath()+
"/";
10257 std::string fullName=path+name;
10265 fn->push_back(std::move(fd));
10268 dirResultList.push_back(fullName);
10269 if (resultSet) resultSet->insert(fullName);
10270 if (killSet) killSet->insert(fullName);
10272 else if (recursive &&
10275 (exclPatList==0 || !
patternMatch(cfi,*exclPatList)) &&
10276 cfi.fileName().at(0)!=
'.')
10280 patList,exclPatList,&dirResultList,resultSet,errorIfNotExist,
10281 recursive,killSet,paths);
10285 if (resultList && !dirResultList.empty())
10288 std::sort(dirResultList.begin(),
10289 dirResultList.end(),
10290 [](
const auto &f1,
const auto &f2) { return qstricmp(f1.c_str(),f2.c_str())<0; });
10293 resultList->insert(resultList->end(), dirResultList.begin(), dirResultList.end());
引用了 FileInfo::absFilePath(), LinkedMap< T, Hash, KeyEqual, Map >::add(), Config_getBool, createFileDef(), FileInfo::dirPath(), FileInfo::exists(), FileInfo::fileName(), g_pathsVisited(), FileInfo::isDir(), FileInfo::isFile(), FileInfo::isReadable(), FileInfo::isSymLink(), Dir::iterator(), msg(), patternMatch(), qPrint(), resolveSymlink() , 以及 warn_uncond().
被这些函数引用 readFileOrDirectory().
◆ readFileOrDirectory()
void readFileOrDirectory |
( |
const QCString & |
s, |
|
|
FileNameLinkedMap * |
fnMap, |
|
|
StringUnorderedSet * |
exclSet, |
|
|
const StringVector * |
patList, |
|
|
const StringVector * |
exclPatList, |
|
|
StringVector * |
resultList, |
|
|
StringUnorderedSet * |
resultSet, |
|
|
bool |
recursive, |
|
|
bool |
errorIfNotExist, |
|
|
StringUnorderedSet * |
killSet, |
|
|
StringSet * |
paths |
|
) |
| |
在文件 doxygen.cpp 第 10302 行定义.
10324 if (exclSet==0 || exclSet->find(fi.absFilePath())==exclSet->end())
10326 if (!fi.exists() || !fi.isReadable())
10328 if (errorIfNotExist)
10330 warn_uncond(
"source '%s' is not a readable file or directory... skipping.\n",
qPrint(s));
10337 std::string dirPath = fi.dirPath(
true);
10338 std::string filePath = fi.absFilePath();
10339 if (paths && !dirPath.empty())
10341 paths->insert(dirPath);
10344 if (killSet==0 || killSet->find(filePath)==killSet->end())
10346 std::string name=fi.fileName();
10353 fn->push_back(std::move(fd));
10356 if (resultList || resultSet)
10358 if (resultList) resultList->push_back(filePath);
10359 if (resultSet) resultSet->insert(filePath);
10362 if (killSet) killSet->insert(fi.absFilePath());
10365 else if (fi.isDir())
10367 readDir(&fi,fnMap,exclSet,patList,
10368 exclPatList,resultList,resultSet,errorIfNotExist,
10369 recursive,killSet,paths);
引用了 FileInfo::absFilePath(), LinkedMap< T, Hash, KeyEqual, Map >::add(), Config_getBool, createFileDef(), FileInfo::dirPath(), FileInfo::exists(), FileInfo::fileName(), g_pathsVisited(), FileInfo::isDir(), QCString::isEmpty(), FileInfo::isFile(), FileInfo::isReadable(), FileInfo::isSymLink(), qPrint(), readDir(), QCString::str() , 以及 warn_uncond().
被这些函数引用 searchInputFiles().
◆ readTagFile()
static void readTagFile |
( |
const std::shared_ptr< Entry > & |
root, |
|
|
const QCString & |
tagLine |
|
) |
| |
|
static |
在文件 doxygen.cpp 第 9591 行定义.
9595 int eqPos = tagLine.
find(
'=');
9603 std::make_pair(fi.absFilePath(), destName.
str()));
9612 if (!fi.exists() || !fi.isFile())
9614 err(
"Tag file '%s' does not exist or is not a file. Skipping it...\n",
9620 msg(
"Reading tag file '%s', location '%s'...\n",
qPrint(fileName),
qPrint(destName));
9622 msg(
"Reading tag file '%s'...\n",
qPrint(fileName));
引用了 FileInfo::absFilePath(), err(), FileInfo::exists(), QCString::find(), QCString::isEmpty(), FileInfo::isFile(), QCString::left(), QCString::length(), msg(), parseTagFile(), qPrint(), QCString::right(), QCString::str(), QCString::stripWhiteSpace() , 以及 Doxygen::tagDestinationMap.
被这些函数引用 parseInput().
◆ resolveClassNestingRelations()
static void resolveClassNestingRelations |
( |
| ) |
|
|
static |
create the scope artificially
在文件 doxygen.cpp 第 1312 行定义.
1325 aliasFullName(name),aliasCd(std::move(cd)), aliasContext(ctx) {}
1327 std::unique_ptr<ClassDef> aliasCd;
1330 std::vector<ClassAlias> aliases;
1334 if (cd && visitedClasses.find(icd.get())==visitedClasses.end())
1340 name,icd->getFileDef(),0);
1366 aliases.push_back(ClassAlias(aliasFullName,std::move(aliasCd),dm));
1377 visitedClasses.
insert(icd.get());
1387 for (
auto &alias : aliases)
1392 alias.aliasContext->addInnerCompound(aliasCd);
1401 if (cd && visitedClasses.find(icd.get())==visitedClasses.end())
1420 "Internal inconsistency: scope for class %s not "
引用了 LinkedMap< T, Hash, KeyEqual, Map >::add(), DefinitionMutable::addInnerCompound(), buildScopeFromQualifiedName(), Doxygen::classLinkedMap, createClassDefAlias(), Definition::definitionType(), FALSE, findScopeFromQualifiedName(), Definition::getDefFileName(), Definition::getDefLine(), Definition::getLanguage(), Definition::getOuterScope(), Doxygen::globalScope, QCString::insert(), QCString::isEmpty(), NamespaceDef::isInline(), Definition::name(), qPrint(), Definition::qualifiedName(), DefinitionMutable::setOuterScope(), stripAnonymousNamespaceScope(), toClassDefMutable(), toDefinitionMutable(), toNamespaceDef(), TRUE, Definition::TypeNamespace , 以及 warn().
被这些函数引用 parseInput().
◆ resolveSymlink()
static std::string resolveSymlink |
( |
const std::string & |
path | ) |
|
|
static |
在文件 doxygen.cpp 第 10120 行定义.
10132 if (sepPos==0 && (result.left(2)==
"//" || result.left(2)==
"\\\\"))
10133 sepPos = result.
find(
'/',2);
10135 sepPos = result.find(
'/',sepPos+1);
10137 sepPos = result.find(
'/',sepPos+1);
10139 QCString prefix = sepPos==-1 ? result : result.
left(sepPos);
10140 if (nonSymlinks.find(prefix.
str())==nonSymlinks.end())
10143 if (fi.isSymLink())
10153 if (fi.isDir() && target.
length()>0 && target.
at(target.
length()-1)!=
'/')
10157 target+=result.
mid(sepPos);
10161 if (known.find(result.str())!=known.end())
return std::string();
10162 known.insert(result.str());
10176 oldPrefix = prefix;
10181 while (sepPos!=-1);
引用了 QCString::at(), Dir::cleanDirPath(), QCString::find(), QCString::insert(), FileInfo::isDir(), FileInfo::isRelative(), FileInfo::isSymLink(), QCString::left(), QCString::length(), QCString::mid(), FileInfo::readLink() , 以及 QCString::str().
被这些函数引用 readDir().
◆ resolveUserReferences()
static void resolveUserReferences |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 9199 行定义.
9216 if (si->label().left(label.
length())==label)
9218 si->setFileName(rl->listName());
9219 si->setGenerated(
TRUE);
9225 if (!si->generated())
9229 if (!si->fileName().isEmpty() &&
9236 if (si->definition())
9243 gd = (
toMemberDef(si->definition()))->getGroupDef();
引用了 LinkedMap< T, Hash, KeyEqual, Map >::find(), PageDef::getGroupDef(), GroupDef::getOutputFileBase(), RefListManager::instance(), SectionManager::instance(), QCString::length(), Doxygen::pageLinkedMap, toMemberDef(), TRUE , 以及 Definition::TypeMember.
被这些函数引用 parseInput().
◆ scopeIsTemplate()
static bool scopeIsTemplate |
( |
const Definition * |
d | ) |
|
|
static |
◆ searchInputFiles()
void searchInputFiles |
( |
| ) |
|
在文件 doxygen.cpp 第 11369 行定义.
11378 g_s.
begin(
"Searching for include files...\n");
11381 for (
const auto &s : includePathList)
11399 g_s.
begin(
"Searching for example files...\n");
11402 for (
const auto &s : examplePathList)
11417 g_s.
begin(
"Searching for images...\n");
11420 for (
const auto &s : imagePathList)
11435 g_s.
begin(
"Searching for dot files...\n");
11438 for (
const auto &s : dotFileList)
11453 g_s.
begin(
"Searching for msc files...\n");
11456 for (
const auto &s : mscFileList)
11471 g_s.
begin(
"Searching for dia files...\n");
11474 for (
const auto &s : diaFileList)
11489 g_s.
begin(
"Searching for files to exclude\n");
11491 for (
const auto &s : excludeList)
11509 g_s.
begin(
"Searching INPUT for files to process...\n");
11513 for (
const auto &s : inputList)
11520 if (path.
at(l-1)==
'\\' || path.
at(l-1)==
'/') path=path.
left(l-1);
11540 [](
const auto &f1,
const auto &f2)
11542 return qstricmp(f1->fullName(),f2->fullName())<0;
11546 if (fileName->size()>1)
11548 std::sort(fileName->begin(),fileName->end(),[](
const auto &f1,
const auto &f2)
11550 return qstricmp(f1->absFilePath(),f2->absFilePath())<0;
引用了 QCString::at(), begin(), Statistics::begin(), Config_getBool, Config_getList, Doxygen::diaFileNameLinkedMap, Doxygen::dotFileNameLinkedMap, end(), Statistics::end(), Doxygen::exampleNameLinkedMap, FALSE, g_inputFiles, g_s, Doxygen::imageNameLinkedMap, Doxygen::includeNameLinkedMap, Doxygen::inputNameLinkedMap, Doxygen::inputPaths, QCString::left(), QCString::length(), Doxygen::mscFileNameLinkedMap, qstricmp(), readFileOrDirectory(), QCString::size() , 以及 TRUE.
被这些函数引用 parseInput().
◆ setAnonymousEnumType()
static void setAnonymousEnumType |
( |
| ) |
|
|
static |
◆ sortMemberLists()
static void sortMemberLists |
( |
| ) |
|
|
static |
◆ stopDoxygen()
static void stopDoxygen |
( |
int |
| ) |
|
|
static |
◆ stripTemplateSpecifiers()
◆ substituteTemplatesInArgList()
在文件 doxygen.cpp 第 5585 行定义.
5592 auto dstIt = dst.
begin();
5597 if (dstIt == dst.
end())
5601 da.
array = dstArray;
5609 da.
array = dstArray;
5617 srcTempArgLists,dstTempArgLists,
5618 src.trailingReturnType().str()));
引用了 Argument::array, ArgumentList::begin(), ArgumentList::end(), ArgumentList::push_back(), ArgumentList::setConstSpecifier(), ArgumentList::setPureSpecifier(), ArgumentList::setTrailingReturnType(), ArgumentList::setVolatileSpecifier(), substituteTemplatesInString() , 以及 Argument::type.
被这些函数引用 addMemberFunction().
◆ substituteTemplatesInString()
在文件 doxygen.cpp 第 5501 行定义.
5508 static const reg::Ex re(R
"(\a\w*)");
5513 for (; it!=
end ; ++it)
5515 const auto &
match = *it;
5516 size_t i =
match.position();
5517 size_t l =
match.length();
5519 dst+=src.substr(p,i-p);
5520 std::string name=
match.str();
5522 auto srcIt = srcTempArgLists.begin();
5523 auto dstIt = dstTempArgLists.begin();
5524 while (srcIt!=srcTempArgLists.end() && !found)
5527 std::vector<Argument>::const_iterator tdaIt;
5528 if (dstIt!=dstTempArgLists.end())
5531 tdaIt = tdAli->
begin();
5536 for (
auto tsaIt = tsaLi.
begin(); tsaIt!=tsaLi.
end() && !found; ++tsaIt)
5540 if (tdAli && tdaIt!=tdAli->
end())
5555 if (tdaType.
left(6)==
"class ") vc=6;
5556 else if (tdaType.
left(9)==
"typename ") vc=9;
5559 tdaName = tdaType.
mid(vc);
引用了 ArgumentList::begin(), ArgumentList::end(), end(), FALSE, QCString::isEmpty(), QCString::left(), reg::match(), QCString::mid(), Argument::name, QCString::str(), TRUE , 以及 Argument::type.
被这些函数引用 substituteTemplatesInArgList().
◆ transferFunctionDocumentation()
static void transferFunctionDocumentation |
( |
| ) |
|
|
static |
◆ transferFunctionReferences()
static void transferFunctionReferences |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 3888 行定义.
3894 for (
const auto &imd : *mn)
3910 if (mdef && mdec)
break;
3918 mdec->getOuterScope(),mdec->getFileDef(),
const_cast<ArgumentList*
>(&mdecAl),
3924 mdec->mergeReferences(mdef);
3926 mdec->mergeReferencedBy(mdef);
引用了 MemberDef::argumentList(), Doxygen::functionNameLinkedMap, MemberDef::getFileDef(), Definition::getOuterScope(), MemberDef::isExternal(), MemberDef::isFunction(), MemberDef::isPrototype(), MemberDef::isStatic(), MemberDef::isVariable(), matchArguments2(), DefinitionMutable::mergeReferencedBy(), DefinitionMutable::mergeReferences(), toMemberDefMutable() , 以及 TRUE.
被这些函数引用 parseInput().
◆ transferRelatedFunctionDocumentation()
static void transferRelatedFunctionDocumentation |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 3934 行定义.
3942 for (
const auto &imd : *mn)
3953 for (
const auto &irmd : *rmn)
引用了 MemberDef::argumentList(), Doxygen::functionNameLinkedMap, MemberDef::getFileDef(), Definition::getOuterScope(), MemberDef::isForeign(), MemberDef::isRelated(), MemberDefMutable::makeForeign(), MemberDefMutable::makeRelated(), matchArguments2(), Doxygen::memberNameLinkedMap, Definition::name(), MemberDef::relatedAlso(), MemberDefMutable::setRelatedAlso(), toMemberDefMutable() , 以及 TRUE.
被这些函数引用 parseInput().
◆ usage()
在文件 doxygen.cpp 第 10544 行定义.
10546 msg(
"Doxygen version %s\nCopyright Dimitri van Heesch 1997-2021\n\n",
qPrint(versionString));
10547 msg(
"You can use doxygen in a number of ways:\n\n");
10548 msg(
"1) Use doxygen to generate a template configuration file:\n");
10549 msg(
" %s [-s] -g [configName]\n\n",
qPrint(name));
10550 msg(
"2) Use doxygen to update an old configuration file:\n");
10551 msg(
" %s [-s] -u [configName]\n\n",
qPrint(name));
10552 msg(
"3) Use doxygen to generate documentation using an existing ");
10553 msg(
"configuration file:\n");
10554 msg(
" %s [configName]\n\n",
qPrint(name));
10555 msg(
"4) Use doxygen to generate a template file controlling the layout of the\n");
10556 msg(
" generated documentation:\n");
10557 msg(
" %s -l [layoutFileName]\n\n",
qPrint(name));
10558 msg(
" In case layoutFileName is omitted layoutFileName.xml will be used as filename.\n");
10559 msg(
" If - is used for layoutFileName doxygen will write to standard output.\n\n");
10560 msg(
"5) Use doxygen to generate a template style sheet file for RTF, HTML or Latex.\n");
10561 msg(
" RTF: %s -w rtf styleSheetFile\n",
qPrint(name));
10562 msg(
" HTML: %s -w html headerFile footerFile styleSheetFile [configFile]\n",
qPrint(name));
10563 msg(
" LaTeX: %s -w latex headerFile footerFile styleSheetFile [configFile]\n\n",
qPrint(name));
10564 msg(
"6) Use doxygen to generate a rtf extensions file\n");
10565 msg(
" %s -e rtf extensionsFile\n\n",
qPrint(name));
10566 msg(
" If - is used for extensionsFile doxygen will write to standard output.\n\n");
10567 msg(
"7) Use doxygen to compare the used configuration file with the template configuration file\n");
10568 msg(
" %s -x [configFile]\n\n",
qPrint(name));
10569 msg(
"8) Use doxygen to show a list of built-in emojis.\n");
10570 msg(
" %s -f emoji outputFileName\n\n",
qPrint(name));
10571 msg(
" If - is used for outputFileName doxygen will write to standard output.\n\n");
10572 msg(
"If -s is specified the comments of the configuration items in the config file will be omitted.\n");
10573 msg(
"If configName is omitted 'Doxyfile' will be used as a default.\n");
10574 msg(
"If - is used for configFile doxygen will write / read the configuration to /from standard output / input.\n\n");
10575 msg(
"If -q is used for a doxygen documentation run, doxygen will see this as if QUIET=YES has been set.\n\n");
10576 msg(
"-v print version string, -V print extended version information\n");
引用了 msg() , 以及 qPrint().
被这些函数引用 readConfiguration().
◆ version()
static void version |
( |
const bool |
extended | ) |
|
|
static |
在文件 doxygen.cpp 第 10515 行定义.
10517 QCString versionString = getFullVersion();
10523 if (!extVers.
isEmpty()) extVers+=
", ";
10524 extVers +=
"sqlite3 ";
10525 extVers += sqlite3_libversion();
10528 if (!extVers.
isEmpty()) extVers+=
", ";
10529 extVers +=
"clang support ";
10530 extVers += CLANG_VERSION_STRING;
10534 int lastComma = extVers.
findRev(
',');
10535 if (lastComma != -1) extVers = extVers.
replace(lastComma,1,
" and");
引用了 QCString::findRev(), QCString::isEmpty(), msg(), qPrint() , 以及 QCString::replace().
被这些函数引用 QhpXmlWriter::declaration() , 以及 readConfiguration().
◆ vhdlCorrectMemberProperties()
static void vhdlCorrectMemberProperties |
( |
| ) |
|
|
static |
◆ writeTagFile()
static void writeTagFile |
( |
| ) |
|
|
static |
在文件 doxygen.cpp 第 11244 行定义.
11247 if (generateTagFile.
isEmpty())
return;
11249 std::ofstream f(generateTagFile.
str(),std::ofstream::out | std::ofstream::binary);
11252 err(
"cannot open tag file %s for writing\n",
11258 tagFile <<
"<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>\n";
11259 tagFile <<
"<tagfile doxygen_version=\"" << getDoxygenVersion() <<
"\"";
11260 if (strlen(getGitVersion())>0)
11262 tagFile <<
" doxygen_gitid=\"" << getGitVersion() <<
"\"";
11269 for (
const auto &fd : *fn)
11271 if (fd->isLinkableInProject()) fd->writeTagFile(tagFile);
11296 if (ndm && nd->isLinkableInProject())
11304 if (gd->isLinkableInProject()) gd->writeTagFile(tagFile);
11309 if (pd->isLinkableInProject()) pd->writeTagFile(tagFile);
11313 tagFile <<
"</tagfile>\n";
引用了 Doxygen::classLinkedMap, Doxygen::conceptLinkedMap, Config_getString, err(), Doxygen::groupLinkedMap, Doxygen::inputNameLinkedMap, QCString::isEmpty(), ConceptDef::isLinkableInProject(), NamespaceDef::isLinkableInProject(), GroupDef::isLinkableInProject(), FileDef::isLinkableInProject(), ClassDef::isLinkableInProject(), Doxygen::mainPage, Doxygen::namespaceLinkedMap, Doxygen::pageLinkedMap, qPrint(), QCString::str(), toClassDefMutable(), toConceptDefMutable(), toNamespaceDefMutable(), ConceptDefMutable::writeTagFile(), GroupDef::writeTagFile(), NamespaceDefMutable::writeTagFile(), FileDef::writeTagFile() , 以及 ClassDefMutable::writeTagFile().
被这些函数引用 generateOutput().
◆ g_classEntries
std::multimap< std::string, const Entry* > g_classEntries |
|
static |
◆ g_compoundKeywords
◆ g_dumpSymbolMap
bool g_dumpSymbolMap = FALSE |
|
static |
◆ g_inputFiles
◆ g_outputList
在文件 doxygen.cpp 第 173 行定义.
被这些函数引用 cleanUpDoxygen(), generateClassList(), generateConceptDocs(), generateExampleDocs(), generateFileDocs(), generateFileSources(), generateGroupDocs(), generateNamespaceClassDocs(), generateNamespaceConceptDocs(), generateNamespaceDocs(), generateOutput() , 以及 generatePageDocs().
◆ g_s
◆ g_successfulRun
bool g_successfulRun = FALSE |
|
static |
◆ g_useOutputTemplate
bool g_useOutputTemplate = FALSE |
|
static |
◆ g_usingDeclarations
virtual QCString requiresClause() const =0
void setVolatileSpecifier(bool b)
NamespaceDefMutable * createNamespaceDef(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const QCString &ref, const QCString &refFile, const QCString &type, bool isPublished)
Factory method to create new NamespaceDef instance
Definition * toDefinition(DefinitionMutable *dm)
virtual void setInbodyDocumentation(const QCString &d, const QCString &docFile, int docLine)=0
void combineDeclarationAndDefinition(MemberDefMutable *mdec, MemberDefMutable *mdef)
std::vector< std::string > StringVector
static void flushUnresolvedRelations()
static void buildClassDocList(const Entry *root)
std::set< const FileDef * > FileDefSet
static DotManager * instance()
static void addIncludeFile(DefMutable *cd, FileDef *ifd, const Entry *root)
virtual void sortMemberLists()=0
virtual void setTagInfo(const TagInfo *i)=0
static bool isalpha(char c)
static std::string currentDirPath()
void startTitle(OutputList &ol, const QCString &fileName, const DefinitionMutable *def)
virtual void setDocumentation(const QCString &d, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE)=0
QCString args
member argument string
static void correctMemberProperties(MemberDefMutable *md)
virtual void setEnumScope(const MemberDef *md, bool livesInsideEnum=FALSE)=0
virtual void setDiskName(const QCString &name)=0
virtual bool isTypedef() const =0
virtual bool hasDocumentation() const =0
returns TRUE if this class has documentation
ArgumentLists tArgLists
template argument declarations
This struct is used to capture the tag file information for an Entry.
virtual void insertNamespace(const NamespaceDef *nd)=0
QCString stripAnonymousNamespaceScope(const QCString &s)
virtual void parseInput(const QCString &fileName, const char *fileBuf, const std::shared_ptr< Entry > &root, ClangTUParser *clangParser)=0
Parses a single input file with the goal to build an Entry tree.
Class managing a pool of worker threads.
Generator for HTML output
virtual void setHidden(bool b)=0
FileDef * findFileDef(const FileNameLinkedMap *fnMap, const QCString &n, bool &ambig)
void setTrailingReturnType(const QCString &s)
@ GROUPDOC_NORMAL
defgroup
Specifier virt
virtualness of the entry
virtual void addSectionsToDefinition(const std::vector< const SectionInfo * > &anchorList)=0
virtual int docLine() const =0
static void copyExtraFiles(const StringVector &files, const QCString &filesOption, const QCString &outputOption)
virtual void mergeMemberSpecifiers(uint64 s)=0
virtual void setSubGrouping(bool enabled)=0
static void transferRelatedFunctionDocumentation()
static RefListManager & instance()
bool findAndRemoveWord(QCString &sentence, const char *word)
removes occurrences of whole word from sentence, while keeps internal spaces and reducing multiple se...
virtual void addUsedClass(ClassDef *cd, const QCString &accessName, Protection prot)=0
bool leftScopeMatch(const QCString &scope, const QCString &name)
virtual LinkedRefMap< const NamespaceDef > getUsedNamespaces() const =0
void endTitle(OutputList &ol, const QCString &fileName, const QCString &name)
MemberDefMutable * toMemberDefMutable(Definition *d)
void push_back(const Argument &a)
ClassDef * createClassDefAlias(const Definition *newScope, const ClassDef *cd)
static void generateConfigFile(const QCString &configFile, bool shortList, bool updateOnly=FALSE)
virtual bool hasReferencedByRelation() const =0
void switchToFile(const FileDef *fd)
Switches to another file within the translation unit started with start().
QCString & replace(size_t index, size_t len, const char *s)
static std::unique_ptr< PageDef > mainPage
static StringSet g_usingDeclarations
Protection
Protection level of members
Class representing all files with a certain base name
#define Config_getEnum(name)
virtual void setInitializer(const QCString &i)=0
TextStream initializer
initial value (for variables)
virtual QCString argsString() const =0
static void expandAliases()
void printNavTree(Entry *root, int indent)
virtual bool generateSourceFile() const =0
virtual void addUsingDirective(const NamespaceDef *nd)=0
static StringUnorderedSet g_pathsVisited(1009)
static void buildFileList(const Entry *root)
void setTranslator(OUTPUT_LANGUAGE_t langName)
QCString stripFromIncludePath(const QCString &path)
virtual QCString briefDescription(bool abbr=FALSE) const =0
virtual int getDefColumn() const =0
int startLine
start line of entry in the source
static StringUnorderedMap namespaceAliasMap
The common base class of all entity definitions found in the sources.
bool callGraph
do we need to draw the call graph?
virtual QCString documentation() const =0
virtual void setCompoundType(CompoundType t)=0
virtual bool isObjCProperty() const =0
static FileNameLinkedMap * imageNameLinkedMap
bool remove(const std::string &path, bool acceptsAbsPath=true) const
virtual void setWriteAccessor(const QCString &w)=0
virtual bool isStatic() const =0
virtual bool isEmbeddedInOuterScope() const =0
An abstract interface of a namespace symbol.
Class representing a directory in the file system
virtual void sortAllMembersList()=0
virtual void setAccessorType(ClassDef *cd, const QCString &t)=0
static void findMemberDocumentation(const Entry *root)
static bool isRecursiveBaseClass(const QCString &scope, const QCString &name)
virtual void setDefFile(const QCString &df, int defLine, int defColumn)=0
static FileNameLinkedMap * diaFileNameLinkedMap
virtual void writeDocumentation(OutputList &ol)=0
static void deleteInstance()
void docify(const QCString &s)
void addClassMemberNameToIndex(const MemberDef *md)
virtual int getMemberGroupId() const =0
static std::unique_ptr< OutlineParserInterface > getParserForFile(const QCString &fn)
void clear()
clears the database
virtual void setInline(bool isInline)=0
QCString substituteTemplateArgumentsInString(const QCString &nm, const ArgumentList &formalArgs, const std::unique_ptr< ArgumentList > &actualArgs)
void writeJavaScriptSearchIndex()
static void buildGroupList(const Entry *root)
virtual void makeRelated()=0
static void findClassEntries(const Entry *root)
static ClassLinkedMap * hiddenClassLinkedMap
Buffer used to store strings
uint length() const
Returns the length of the string, not counting the 0-terminator.
static StringMap tagDestinationMap
This class represents an function or template argument list.
static const uint64 ForwardDecl
static ConceptLinkedMap * conceptLinkedMap
virtual bool isLinkableInProject() const =0
A model of a directory symbol.
virtual int getDefLine() const =0
int findRev(char c, int index=-1, bool cs=TRUE) const
static void countMembers()
uint64 spec
class/member specifiers
QCString filterTitle(const QCString &title)
static void generateDiskNames()
virtual void setName(const QCString &name)=0
static FileNameLinkedMap * dotFileNameLinkedMap
static void transferFunctionDocumentation()
bool isEmpty() const
Returns TRUE iff the string is empty
virtual void writeMemberList(OutputList &ol) const =0
Generator for RTF output.
virtual ClassDef * insertTemplateInstance(const QCString &fileName, int startLine, int startColumn, const QCString &templSpec, bool &freshInstance) const =0
bool match(const std::string &str, Match &match, const Ex &re)
Matches a given string str for a match against regular expression re.
void initFileMemberIndices()
virtual void setReference(const QCString &r)=0
static QCString createOutputDirectory(const QCString &baseDirName, const QCString &formatDirName, const char *defaultDirName)
static void transferFunctionReferences()
virtual const Definition * findInnerCompound(const QCString &name) const =0
virtual const GroupDef * getGroupDef() const =0
MethodTypes mtype
signal, slot, (dcop) method, or property?
static PageLinkedMap * pageLinkedMap
static void sortMemberLists()
static void writeStyleSheetFile(TextStream &t)
virtual void addUsingDeclaration(const ClassDef *cd)=0
static void addPageToContext(PageDef *pd, Entry *root)
std::vector< BaseInfo > extends
list of base classes
static IndexList * indexList
static void addRelatedPage(Entry *root)
virtual QCString groupTitle() const =0
virtual void setBitfields(const QCString &s)=0
CompoundType
The various compound types
static void findGroupScope(const Entry *root)
PageDef * createPageDef(const QCString &f, int l, const QCString &n, const QCString &d, const QCString &t)
static void dumpSymbol(TextStream &t, Definition *d)
static bool isSymbolHidden(const Definition *d)
bool copyFile(const QCString &src, const QCString &dest)
Copies the contents of file with name src to the newly created file with name dest.
uint size() const
Returns the length of the string, not counting the 0-terminator.
static void flushCachedTemplateRelations()
Helper class to find a class definition or check if A symbol is accessible in a given scope.
static void computeTooltipTexts()
int startColumn
start column of entry in the source
static void organizeSubGroupsFiltered(const Entry *root, bool additional)
static void generateGroupDocs()
MemberDef * toMemberDef(Definition *d)
virtual QCString bitfieldString() const =0
static QCString extractClassName(const Entry *root)
virtual bool addNamespace(const NamespaceDef *def)=0
bool hidden
does this represent an entity that is hidden from the output
static void findTemplateInstanceRelation(const Entry *root, Definition *context, ClassDefMutable *templateClass, const QCString &templSpec, const TemplateNameMap &templateNames, bool isArtificial)
static void generateExampleDocs()
Protection prot
inheritance type
virtual void setArgsString(const QCString &as)=0
SrcLangExt
Language as given by extension
std::vector< const SectionInfo * > anchors
list of anchors defined in this entry
T * add(const char *k, Args &&... args)
Adds a new object to the ordered vector if it was not added already.
void setPerlModDoxyfile(const QCString &qs)
static void buildDefineList()
static int findTemplateSpecializationPosition(const QCString &name)
virtual bool isPrototype() const =0
void addIndexItem(const Definition *context, const MemberDef *md, const QCString §ionAnchor=QCString(), const QCString &title=QCString())
static NamespaceDefMutable * globalScope
static void inheritDocumentation()
static void findUsedClassesForClass(const Entry *root, Definition *context, ClassDefMutable *masterCd, ClassDefMutable *instanceCd, bool isArtificial, const std::unique_ptr< ArgumentList > &actualArgs=std::unique_ptr< ArgumentList >(), const TemplateNameMap &templateNames=TemplateNameMap())
bool referencedByRelation
do we need to show the referenced by relation?
void addNamespaceToGroups(const Entry *root, NamespaceDef *nd)
std::set< std::string > StringSet
static DefinesPerFileList macroDefinitions
int mGrpId
member group id
QCString stripTemplateSpecifiersFromScope(const QCString &fullName, bool parentOnly, QCString *pLastScopeStripped)
static void writeStyleSheetFile(TextStream &t)
virtual void setMemberClass(const ClassDef *cd)=0
static void generateNamespaceDocs()
Protection protection
class protection
std::unique_ptr< RefList > Ptr
void addConceptToGroups(const Entry *root, ConceptDef *cd)
static void writeSearchData(const QCString &dir)
void addIndex(As &&... args)
Add an index generator to the list, using a syntax similar to std::make_unique<T>()
virtual void insertBaseClass(ClassDef *, const QCString &name, Protection p, Specifier s, const QCString &t=QCString())=0
virtual bool isInline() const =0
Specifier
Virtualness of a member.
virtual bool isHidden() const =0
static StringMap aliasMap
virtual void insertClass(const ClassDef *cd)=0
virtual bool isLinkableInProject() const =0
returns TRUE iff a link is possible to this item within this project.
virtual void setRequiresClause(const QCString &req)=0
virtual void mergeReferences(const Definition *other)=0
static PlantumlManager & instance()
QCString briefFile
file in which the brief desc. was found
virtual void insertEnumField(const MemberDef *md)=0
static void dumpSymbolMap()
static const ClassDef * findClassDefinition(FileDef *fd, NamespaceDef *nd, const QCString &scopeName)
static void addLocalObjCMethod(const Entry *root, const QCString &scopeName, const QCString &funcType, const QCString &funcName, const QCString &funcArgs, const QCString &exceptions, const QCString &funcDecl, uint64 spec)
QCString includeName
include name (3 arg of \class)
static bool parseSourcesNeeded
virtual const TemplateNameMap & getTemplateBaseClassNames() const =0
static void addMemberDocs(const Entry *root, MemberDefMutable *md, const QCString &funcDecl, const ArgumentList *al, bool over_load, uint64 spec)
void err(const char *fmt,...)
virtual int inbodyLine() const =0
virtual void setDocsForDefinition(bool b)=0
char & at(size_t i)
Returns a reference to the character at index i.
virtual void setTemplateBaseClassNames(const TemplateNameMap &templateNames)=0
Text streaming class that buffers data.
static DirLinkedMap * dirLinkedMap
void warn_simple(const QCString &file, int line, const char *text)
int docLine
line number at which the documentation was found
MemberDefMutable * createMemberDef(const QCString &defFileName, int defLine, int defColumn, const QCString &type, const QCString &name, const QCString &args, const QCString &excp, Protection prot, Specifier virt, bool stat, Relationship related, MemberType t, const ArgumentList &tal, const ArgumentList &al, const QCString &metaData)
Factory method to create a new instance of a MemberDef
QCString includeFile
include file (2 arg of \class, must be unique)
int find(char c, int index=0, bool cs=TRUE) const
FileDef * fileDef() const
virtual void insertReimplementedBy(const MemberDef *md)=0
static void addOverloaded(const Entry *root, MemberName *mn, const QCString &funcType, const QCString &funcName, const QCString &funcArgs, const QCString &funcDecl, const QCString &exceptions, uint64 spec)
static CitationManager & instance()
virtual int briefLine() const =0
virtual void setBriefDescription(const QCString &b, const QCString &briefFile, int briefLine)=0
virtual void writeTagFile(TextStream &)=0
static void findEnums(const Entry *root)
std::unordered_map< std::string, const Definition * > ClangUsrMap
NamespaceDef * getResolvedNamespace(const QCString &name)
static void generateConceptDocs()
ClassDef * getClass(const QCString &n)
static void computeClassRelations()
virtual FileDef * getFileDef() const =0
Returns the namespace this compound is in, or 0 if it has a global scope.
static void parseFilesMultiThreading(const std::shared_ptr< Entry > &root)
parse the list of input files
void writeStyleInfo(int part)
virtual void distributeMemberGroupDocumentation()=0
bool patternMatch(const FileInfo &fi, const StringVector &patList)
static FileNameLinkedMap * exampleNameLinkedMap
static bool isSpecialization(const ArgumentLists &srcTempArgLists, const ArgumentLists &dstTempArgLists)
virtual void setLocalToc(const LocalToc &tl)=0
virtual const QCString & docName() const =0
static Definition * findScopeFromQualifiedName(NamespaceDefMutable *startScope, const QCString &n, FileDef *fileScope, const TagInfo *tagInfo)
virtual QCString docFile() const =0
QCString stripTemplateSpecifiers(const QCString &s)
void createJavaScriptSearchIndex()
bool rightScopeMatch(const QCString &scope, const QCString &name)
static void writeExternalSearchPage()
bool protectionLevelVisible(Protection prot)
static void resolveClassNestingRelations()
static void addToIndices()
void warn(const QCString &file, int line, const char *fmt,...)
SectionInfo * replace(const QCString &label, const QCString &fileName, int lineNr, const QCString &title, SectionType type, int level, const QCString &ref=QCString())
Replace an existing section with a new one Return a non-owning pointer to the newly added section
DirIterator begin(DirIterator it) noexcept
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
static bool isVarWithConstructor(const Entry *root)
Ordered dictionary of FileName objects.
QCString relates
related class (doc block)
static MemberDef * addVariableToClass(const Entry *root, ClassDefMutable *cd, MemberType mtype, const QCString &type, const QCString &name, const QCString &args, bool fromAnnScope, MemberDef *fromAnnMemb, Protection prot, Relationship related)
virtual void setIsStatic(bool b)=0
static const uint64 Alias
QCString doc
documentation block (partly parsed)
static bool isFlagSet(DebugMask mask)
QCString getOverloadDocs()
static void buildConceptDocList(const Entry *root)
Iterator class to iterator through matches.
bool hasParameters() const
static SymbolMap< Definition > * symbolMap
QCString getenv(const QCString &variable)
void markAsProcessed() const
A linked map of directories
virtual LinkedRefMap< const NamespaceDef > getUsedNamespaces() const =0
static void organizeSubGroups(const Entry *root)
DirIterator end(const DirIterator &) noexcept
static bool generatingXmlOutput
GroupDocType groupDocType
int contains(char c, bool cs=TRUE) const
static void writeStyleSheetFile(TextStream &t)
std::unordered_set< std::string > StringUnorderedSet
static OutputList * g_outputList
virtual const ClassDef * templateMaster() const =0
Returns the template master of which this class is an instance.
virtual void writeTagFile(TextStream &)=0
A model of a page symbol.
A model of a group of symbols.
virtual void setBodyDef(const FileDef *fd)=0
void addClassToGroups(const Entry *root, ClassDef *cd)
static void version(const bool extended)
static void writeFooterFile(TextStream &t)
static FileNameLinkedMap * inputNameLinkedMap
virtual void computeAnchors()=0
virtual void setMemberGroupId(int id)=0
QCString name
the name of the base class
static void buildConceptList(const Entry *root)
static void copyLatexStyleSheet()
virtual bool isTypedefValCached() const =0
QCString inbodyDocs
documentation inside the body of a function
virtual void setMaxInitLines(int lines)=0
static const uint64 Union
QCString metaData
Slice metadata
NamespaceDefMutable * toNamespaceDefMutable(Definition *d)
static void findInheritedTemplateInstances()
virtual void setFileDef(FileDef *fd)=0
virtual void combineUsingRelations(NamespaceDefSet &visitedNamespace)=0
static void findIncludedUsingDirectives()
#define Config_updateList(name,...)
static const uint64 Optional
DefinitionMutable * toDefinitionMutable(Definition *d)
static ClangParser * instance()
Returns the one and only instance of the class
#define Config_updateString(name, value)
virtual QCString anchor() const =0
static const uint64 Struct
static void findBaseClassesForClass(const Entry *root, Definition *context, ClassDefMutable *masterCd, ClassDefMutable *instanceCd, FindBaseClassRelation_Mode mode, bool isArtificial, const std::unique_ptr< ArgumentList > &actualArgs=std::unique_ptr< ArgumentList >(), const TemplateNameMap &templateNames=TemplateNameMap())
virtual const FileDef * getBodyDef() const =0
virtual void setMetaData(const QCString &md)=0
void addSearchDir(const QCString &dir)
Class representing a list of output generators that are written to in parallel.
virtual void setClassName(const QCString &name)=0
void addDirToGroups(const Entry *root, DirDef *dd)
static const uint64 Interface
virtual QCString qualifiedName() const =0
virtual void setBriefDescription(const QCString &b, const QCString &briefFile, int briefLine)=0
virtual void setProtection(Protection p)=0
virtual void reclassifyMember(MemberDefMutable *md, MemberType t)=0
virtual bool isSource() const =0
void postProcess(bool clearHeaderAndFooter, bool compare=FALSE)
static void processTagLessClasses(const ClassDef *rootCd, const ClassDef *cd, ClassDefMutable *tagParentCd, const QCString &prefix, int count)
Look through the members of class cd and its public members.
static bool isClassSection(const Entry *root)
QCString addHtmlExtensionIfMissing(const QCString &fName)
void setPureSpecifier(bool b)
static void findDocumentedEnumValues()
A model of a class/file/namespace member symbol.
void warn_uncond(const char *fmt,...)
static void findUsedTemplateInstances()
void addGroupToGroups(const Entry *root, GroupDef *subGroup)
static void addConceptToContext(const Entry *root)
virtual bool hasCallerGraph() const =0
static int findEndOfTemplate(const QCString &s, int startPos)
void begin(const char *name)
FileDef * createFileDef(const QCString &p, const QCString &n, const QCString &ref, const QCString &dn)
virtual void setMemberSpecifiers(uint64 s)=0
QCString argListToString(const ArgumentList &al, bool useCanonicalType, bool showDefVals)
virtual void findSectionsInDocumentation()=0
void processFile(const QCString &fileName, BufStr &input, BufStr &output)
static bool findClassRelation(const Entry *root, Definition *context, ClassDefMutable *cd, const BaseInfo *bi, const TemplateNameMap &templateNames, FindBaseClassRelation_Mode mode, bool isArtificial)
virtual void distributeMemberGroupDocumentation()=0
static StringSet g_compoundKeywords
A abstract class representing of a compound symbol.
virtual const ClassDef * getCachedTypedefVal() const =0
virtual void setArtificial(bool b)=0
static void findDefineDocumentation(Entry *root)
virtual void mergeCategory(ClassDef *category)=0
static bool clangAssistedParsing
QCString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
#define Config_getInt(name)
virtual bool isFriend() const =0
static void generateXRefPages()
static MemberNameLinkedMap * functionNameLinkedMap
void disable(OutputGenerator::OutputType o)
static bool g_useOutputTemplate
void addNamespaceMemberNameToIndex(const MemberDef *md)
virtual void makeTemplateArgument(bool b=TRUE)=0
void addMemberToGroups(const Entry *root, MemberDef *md)
virtual ClassDef * relatedAlso() const =0
static void stopDoxygen(int)
QCString left(size_t len) const
static void writeHeaderFile(TextStream &t)
static const uint64 Inline
static void findObjCMethodDefinitions(const Entry *root)
virtual QCString excpString() const =0
static bool findGlobalMember(const Entry *root, const QCString &namespaceName, const QCString &type, const QCString &name, const QCString &tempArg, const QCString &, const QCString &decl, uint64 spec)
static std::shared_ptr< Entry > parseFile(OutlineParserInterface &parser, FileDef *fd, const QCString &fn, ClangTUParser *clangParser, bool newTU)
virtual QCString name() const =0
virtual bool isDefine() const =0
static void usage(const QCString &name, const QCString &versionString)
virtual const MemberNameInfoLinkedMap & memberNameInfoLinkedMap() const =0
Returns a dictionary of all members.
virtual Specifier virtualness(int count=0) const =0
static void substituteTemplatesInArgList(const ArgumentLists &srcTempArgLists, const ArgumentLists &dstTempArgLists, const ArgumentList &src, ArgumentList &dst)
virtual void setDefinitionTemplateParameterLists(const ArgumentLists &lists)=0
virtual void makePartOfGroup(const GroupDef *gd)=0
virtual bool isVariable() const =0
virtual const MemberVector & enumFieldList() const =0
void addImageFile(const QCString &name)
static ParserManager * parserManager
QCString & insert(size_t index, const QCString &s)
ConceptDefMutable * getConceptMutable(const QCString &key)
virtual bool isAnonymous() const =0
std::unique_ptr< OutlineParserInterface > getOutlineParser(const QCString &extension)
Gets the interface to the parser associated with a given extension.
int briefLine
line number at which the brief desc. was found
static void buildGroupListFiltered(const Entry *root, bool additional, bool includeExternal)
static void addMemberSpecialization(const Entry *root, MemberName *mn, ClassDefMutable *cd, const QCString &funcType, const QCString &funcName, const QCString &funcArgs, const QCString &funcDecl, const QCString &exceptions, uint64 spec)
virtual const TemplateInstanceList & getTemplateInstances() const =0
Returns a sorted dictionary with all template instances found for this template class.
virtual void findSectionsInDocumentation()=0
virtual void addUsingDeclaration(const ClassDef *cd)=0
virtual void setFileDef(FileDef *fd)=0
virtual const BaseClassList & baseClasses() const =0
Returns the list of base classes from which this class directly inherits.
virtual void writeSourceHeader(OutputList &ol)=0
virtual int initializerLines() const =0
static void print(DebugMask mask, int prio, const char *fmt,...)
static void findUsingDeclarations(const Entry *root, bool filterPythonPackages)
bool updateLanguageMapping(const QCString &extension, const QCString &language)
static StringSet inputPaths
virtual void setInitializer(const QCString &init)=0
virtual void writeDocumentationForInnerClasses(OutputList &ol) const =0
virtual bool needsPreprocessing(const QCString &extension) const =0
Returns TRUE if the language identified by extension needs the C preprocessor to be run before feed t...
void generateTemplateFiles(const QCString &templateDir)
int section
entry type (see Sections);
QCString removeRedundantWhiteSpace(const QCString &s)
virtual void setClassSpecifier(uint64 spec)=0
virtual void setPrototype(bool p, const QCString &df, int line, int column)=0
static void generateFileSources()
static void writeFooterFile(TextStream &t)
void sortMemberIndexLists()
static StringVector g_inputFiles
int qstricmp(const char *str1, const char *str2)
void initDefaultExtensionMapping()
void setConstSpecifier(bool b)
Translator * theTranslator
virtual bool isReference() const =0
Ordered dictionary of MemberName objects.
A class that generated the HTML Help specific files.
A list of index interfaces.
virtual QCString inbodyDocumentation() const =0
static void readTagFile(const std::shared_ptr< Entry > &root, const QCString &tagLine)
virtual QCString name() const =0
ClassDefMutable * getClassDefMutable() const
static void findEnumDocumentation(const Entry *root)
static GroupLinkedMap * groupLinkedMap
static bool g_successfulRun
virtual void addFile(const FileDef *def)=0
virtual ClassLinkedRefMap getClasses() const =0
returns the classes nested into this class
virtual void addWord(const QCString &word, bool hiPriority)=0
void writeDefaultLayoutFile(const QCString &fileName)
QCString resolveTypeDef(const Definition *context, const QCString &qualifiedName, const Definition **typedefContext)
int endBodyLine
line number where the definition ends
virtual QCString inbodyFile() const =0
This class contains the information about the argument of a function or template
virtual QCString definition() const =0
virtual const ClassDef * getClassDef() const =0
virtual void setInbodyDocumentation(const QCString &d, const QCString &inbodyFile, int inbodyLine)=0
static void resolveUserReferences()
virtual void addMembersToMemberGroup()=0
static const uint64 Explicit
static ClassDefMutable * createTagLessInstance(const ClassDef *rootCd, const ClassDef *templ, const QCString &fieldName)
virtual void sortMemberLists()=0
void generatePage()
Generate the citations page
static const NamespaceDef * findUsedNamespace(const LinkedRefMap< const NamespaceDef > &unl, const QCString &name)
void run()
Run plant UML tool for all images
void addCodeOnlyMappings()
bool callerGraph
do we need to draw the caller graph?
static QCString substituteTemplatesInString(const ArgumentLists &srcTempArgLists, const ArgumentLists &dstTempArgLists, const std::string &src)
virtual void setOuterScope(Definition *d)=0
virtual ArgumentLists getTemplateParameterLists() const =0
Returns the template parameter lists that form the template declaration of this class.
void warn_undoc(const QCString &file, int line, const char *fmt,...)
QCString getLanguageSpecificSeparator(SrcLangExt lang, bool classScope)
Returns the scope separator to use given the programming language lang
virtual void setTypeConstraints(const ArgumentList &al)=0
virtual QCString trMainPage()=0
void countDataStructures()
virtual void enableReferencesRelation(bool e)=0
virtual void computeAnchors()=0
virtual bool isFunction() const =0
static void findUsingDirectives(const Entry *root)
static void findDEV(const MemberNameLinkedMap &mnsd)
virtual bool isBaseClass(const ClassDef *bcd, bool followInstances, int level=0) const =0
Returns TRUE iff bcd is a direct or indirect base class of this class.
void startFile(OutputList &ol, const QCString &name, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName)
ClassDefMutable * createClassDef(const QCString &fileName, int startLine, int startColumn, const QCString &name, ClassDef::CompoundType ct, const QCString &ref, const QCString &fName, bool isSymbol, bool isJavaEnum)
Factory method to create a new ClassDef object
virtual void writeSourceFooter(OutputList &ol)=0
int minClassDistance(const ClassDef *cd, const ClassDef *bcd, int level)
static int setFlag(const QCString &label)
QCString fileName() const
virtual void setLanguage(SrcLangExt lang)=0
void checkAndCorrect(bool quiet)
static void distributeMemberGroupDocumentation()
Object representing the matching results.
std::unique_ptr< CodeParserInterface > getCodeParser(const QCString &extension)
Gets the interface to the parser associated with a given extension.
virtual void addUsedByClass(ClassDef *cd, const QCString &accessName, Protection prot)=0
virtual QCString briefDescription(bool abbreviate=FALSE) const =0
#define LATEX_STYLE_EXTENSION
virtual void setReadAccessor(const QCString &r)=0
QCString showFileDefMatches(const FileNameLinkedMap *fnMap, const QCString &n)
bool checkIfTypedef(const Definition *scope, const FileDef *fileScope, const QCString &n)
void correct_path()
Correct a possible wrong PATH variable
virtual QCString getOutputFileBase() const =0
static void addMembersToMemberGroup()
static void generateNamespaceClassDocs(const ClassLinkedRefMap &classList)
virtual int getStartBodyLine() const =0
virtual int getEndBodyLine() const =0
virtual const NamespaceDef * getNamespaceDef() const =0
static void findSectionsInDocumentation()
int extractClassNameFromType(const QCString &type, int &pos, QCString &name, QCString &templSpec, SrcLangExt lang)
virtual void setPageScope(Definition *)=0
NamespaceDef * createNamespaceDefAlias(const Definition *newScope, const NamespaceDef *nd)
Factory method to create an alias of an existing namespace.
QCString tempArgListToString(const ArgumentList &al, SrcLangExt lang, bool includeDefault)
int system(const QCString &command, const QCString &args, bool commandHasConsole=true)
static bool setCurrent(const std::string &path)
static StringUnorderedSet expandAsDefinedSet
static void setAnonymousEnumType()
virtual void invalidateTypedefValCache()=0
double getSysElapsedTime()
virtual void insertUsedFile(FileDef *fd)=0
QCString normalizeNonTemplateArgumentsInString(const QCString &name, const Definition *context, const ArgumentList &formalArgs)
#define Config_updateBool(name, value)
static void findDirDocumentation(const Entry *root)
static const uint64 Service
Generator for Eclipse help files.
virtual bool isSubClass(ClassDef *bcd, int level=0) const =0
Returns TRUE iff bcd is a direct or indirect sub class of this class.
int inbodyLine
line number at which the body doc was found
virtual void computeTooltip()=0
static ClassDef * findClassWithinClassContext(Definition *context, ClassDef *cd, const QCString &name)
virtual const MemberDef * reimplements() const =0
virtual Protection protection() const =0
const T * find(const std::string &key) const
Find an object given the key.
std::string str() const
Return the contents of the buffer as a std::string object
ClassDef * toClassDef(Definition *d)
static void readDir(FileInfo *fi, FileNameLinkedMap *fnMap, StringUnorderedSet *exclSet, const StringVector *patList, const StringVector *exclPatList, StringVector *resultList, StringUnorderedSet *resultSet, bool errorIfNotExist, bool recursive, StringUnorderedSet *killSet, StringSet *paths)
virtual void insertUsedFile(const FileDef *)=0
virtual const GroupList & partOfGroups() const =0
static const uint64 Protocol
virtual void setInheritsDocsFrom(const MemberDef *md)=0
virtual void insertConcept(const ConceptDef *cd)=0
virtual void setFromAnonymousScope(bool b) const =0
virtual void setMetaData(const QCString &m)=0
static void addEnumDocs(const Entry *root, MemberDefMutable *md)
bool fill(char c, int len=-1)
Fills a string with a predefined character
virtual void setDocumentedEnumValues(bool value)=0
void generateDirDocs(OutputList &ol)
void writeTemplate(TextStream &t, bool shortList, bool updateOnly=FALSE)
void addFileMemberNameToIndex(const MemberDef *md)
virtual bool isStrong() const =0
virtual void insertSubClass(ClassDef *, Protection p, Specifier s, const QCString &t=QCString())=0
ConceptDefMutable * createConceptDef(const QCString &fileName, int startLine, int startColumn, const QCString &name, const QCString &tagRef, const QCString &tagFile)
const TagInfo * tagInfo() const
static const char * getArg(int argc, char **argv, int &optInd)
virtual void copyArgumentNames(const MemberDef *bmd)=0
SectionInfo * add(const SectionInfo &si)
Add a new section given the data of an existing section.
void addRefItem(const RefItemVector &sli, const QCString &key, const QCString &prefix, const QCString &name, const QCString &title, const QCString &args, const Definition *scope)
static void freeMappers()
virtual void invalidateCachedArgumentTypes()=0
virtual DefType definitionType() const =0
virtual void setNamespace(const NamespaceDef *nd)=0
virtual void countMembers()=0
virtual QCString briefFile() const =0
void mergeArguments(ArgumentList &srcAl, ArgumentList &dstAl, bool forceNameOverwrite)
std::unique_ptr< ArgumentList > getTemplateArgumentsFromName(const QCString &name, const ArgumentLists &tArgLists)
virtual bool isForeign() const =0
virtual void setFileName(const QCString &name)=0
static QCString getQchFileName()
virtual CompoundType compoundType() const =0
Returns the type of compound this is, i.e.
int getPrefixIndex(const QCString &name)
QCString & setNum(short n)
QCString pathListSeparator()
virtual void addListReferences()=0
static double elapsedTime()
QCString fileName
file this entry was extracted from
static int computeIdealCacheParam(size_t v)
const MemberDef * typeDef
static void addClassToContext(const Entry *root)
static void generateTreeViewImages()
QCString groupname
name of the group
static void generateFileDocs()
virtual uint64 getMemberSpecifiers() const =0
static const uint64 Exception
void parseTagFile(const std::shared_ptr< Entry > &root, const char *fullName)
std::unique_ptr< ClangTUParser > createTUParser(const FileDef *fd) const
QCString inbodyFile
file in which the body doc was found
SrcLangExt lang
programming language in which this entry was found
virtual QCString qualifiedName() const =0
void compareDoxyfile(TextStream &t)
static SearchIndexIntf * searchIndex
std::vector< ArgumentList > ArgumentLists
virtual void setFromAnonymousMember(MemberDef *m)=0
static void buildCompleteMemberLists()
ArgumentList typeConstr
where clause (C#) for type constraints
static void findMember(const Entry *root, const QCString &relates, const QCString &type, const QCString &args, QCString funcDecl, bool overloaded, bool isFunc)
static void generatePageDocs()
virtual void setDeclFile(const QCString &df, int line, int column)=0
virtual void addListReferences()=0
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
QCString substitute(const QCString &s, const QCString &src, const QCString &dst)
substitute all occurrences of src in s by dst
void initNamespaceMemberIndices()
virtual QCString trPage(bool first_capital, bool singular)=0
QCString brief
brief description (doc block)
virtual void setRelatedAlso(ClassDef *cd)=0
static QCString filterDBFileName
void extractNamespaceName(const QCString &scopeName, QCString &className, QCString &namespaceName, bool allowEmptyClass)
int bodyLine
line number of the body in the source
virtual void enableReferencedByRelation(bool e)=0
bool readInputFile(const QCString &fileName, BufStr &inBuf, bool filter, bool isSourceCode)
read a file name fileName and optionally filter and transcode it
virtual const ArgumentList & templateArguments() const =0
std::vector< RefItem * > RefItemVector
int initLines
define/variable initializer lines to show
virtual void setId(const QCString &name)=0
void parse()
Parse the file given at construction time as a translation unit This file should already be preproces...
virtual void enableCallGraph(bool e)=0
static const uint64 Strong
static void buildExampleList(Entry *root)
static MemberNameLinkedMap * memberNameLinkedMap
virtual bool isLinkable() const =0
static bool preProcessFileInplace(const QCString &path, const QCString &name)
This is an API to a VERY brittle RTF preprocessor that combines nested RTF files.
virtual void addTypeConstraints()=0
virtual void addMembersToMemberGroup()=0
Represents an unstructured piece of information, about an entity found in the sources.
static void writeSearchPage()
#define Config_getBool(name)
virtual void findSectionsInDocumentation()=0
virtual void setAnonymousEnumType()=0
virtual QCString getOutputFileBase() const =0
static void buildListOfUsingDecls(const Entry *root)
static void buildPageList(Entry *root)
static void writeTagFile()
virtual void moveDeclArgumentList(std::unique_ptr< ArgumentList > al)=0
const std::vector< std::shared_ptr< Entry > > & children() const
static void parseFilesSingleThreading(const std::shared_ptr< Entry > &root)
parse the list of input files
NamespaceDef * toNamespaceDef(Definition *d)
static void buildClassList(const Entry *root)
virtual void write(const QCString &file)=0
static QCString htmlFileExtension
virtual bool isDocsForDefinition() const =0
virtual const MemberDef * getEnumScope() const =0
static SectionManager & instance()
returns a reference to the singleton
bool explicitExternal
explicitly defined as external?
Specifier virt
virtualness
Class representing a regular expression.
virtual void setDocumentation(const QCString &d, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE)=0
virtual bool isEnumerate() const =0
void readFileOrDirectory(const QCString &s, FileNameLinkedMap *fnMap, StringUnorderedSet *exclSet, const StringVector *patList, const StringVector *exclPatList, StringVector *resultList, StringUnorderedSet *resultSet, bool recursive, bool errorIfNotExist, StringUnorderedSet *killSet, StringSet *paths)
void generateOutputViaTemplate()
void remove(const K &key)
Removes entry key from the cache.
virtual bool isExternal() const =0
void msg(const char *fmt,...)
virtual void makeForeign()=0
void writeGraphInfo(OutputList &ol)
virtual void writeDocumentation(OutputList &ol) const =0
void finalizeSearchIndexer()
void registerParser(const QCString &name, OutlineParserFactory outlineParserFactory, CodeParserFactory codeParserFactory)
Registers an additional parser.
static LayoutDocManager & instance()
Returns a reference to this singleton.
virtual QCString documentation() const =0
RelatesType relatesType
how relates is handled
static void checkPageRelations()
virtual bool isReference() const =0
Returns TRUE if this class is imported via a tag file
virtual void setCurrentDoc(const Definition *ctx, const QCString &anchor, bool isSourceFile)=0
void term(const char *fmt,...)
void writeIndexHierarchy(OutputList &ol)
static void computeMemberRelations()
static void computeTemplateClassRelations()
virtual Definition * getOuterScope() const =0
bool endsWith(const char *s) const
virtual bool isEnumValue() const =0
static void mergeCategories()
static bool g_dumpSymbolMap
Minimal replacement for QFileInfo.
virtual bool isCSharp() const =0
Returns TRUE if this class is implemented in C#
static void generateNamespaceConceptDocs(const ConceptLinkedRefMap &conceptList)
static void computeVhdlComponentRelations()
virtual QCString absFilePath() const =0
virtual void writeTagFile(TextStream &)=0
std::string absFilePath() const
virtual bool isArtificial() const =0
static const uint64 Category
const char * qPrint(const char *s)
Generator for LaTeX output.
static void vhdlCorrectMemberProperties()
virtual void setTagLessReference(const ClassDef *cd)=0
static void exitDoxygen()
virtual const FileDef * getFileDef() const =0
#define Config_getString(name)
virtual void setBodySegment(int defLine, int bls, int ble)=0
static void addMembersToIndex()
static QCString getQhpFileName()
static void findMainPage(Entry *root)
virtual QCString getDefFileName() const =0
class that provide information about a section.
A class that generates docset files.
static void generateClassDocs()
static void escapeAliases()
virtual void setRefItems(const RefItemVector &sli)=0
virtual bool hasCallGraph() const =0
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)
static bool insideMainPage
virtual void addInnerCompound(const Definition *)=0
bool artificial
Artificially introduced item
void addSTLSupport(std::shared_ptr< Entry > &root)
Add stub entries for the most used classes in the standard template library
virtual void countMembers()=0
bool parse(const QCString &fileName, bool update=FALSE)
static void compareDoxyfile()
virtual const ArgumentList & argumentList() const =0
static MemberDef * addVariableToFile(const Entry *root, MemberType mtype, const QCString &scope, const QCString &type, const QCString &name, const QCString &args, bool fromAnnScope, MemberDef *fromAnnMemb)
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
static void computePageRelations(Entry *root)
static const uint64 Mutable
@ MemberListType_pubAttribs
Manages programming language parsers.
static NamespaceLinkedMap * namespaceLinkedMap
QCString removeAnonymousScopes(const QCString &str)
static void addListReferences()
virtual void setUsedOnly(bool b)=0
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string
static FileNameLinkedMap * mscFileNameLinkedMap
void initClassMemberIndices()
virtual MemberList * getMemberList(MemberListType lt) const =0
Returns the members in the list identified by lt
QCString inside
name of the class in which documents are found
static Cache< std::string, LookupInfo > * lookupCache
const ClassDef * classDef
A model of a file symbol.
int qstrcmp(const char *str1, const char *str2)
virtual void addInnerCompound(const Definition *d)=0
static void generateClassList(const ClassLinkedMap &classList)
static void buildNamespaceList(const Entry *root)
QCString read
property read accessor
This class stores information about an inheritance relation
static void addEnumValuesToEnums(const Entry *root)
QCString mergeScopes(const QCString &leftScope, const QCString &rightScope)
RefItemVector sli
special lists (test/todo/bug/deprecated/..) this entry is in
bool subGrouping
automatically group class members?
void parseFuncDecl(const QCString &decl, const SrcLangExt lang, QCString &clName, QCString &type, QCString &name, QCString &args, QCString &funcTempList, QCString &exceptions)
void setenv(const QCString &variable, const QCString &value)
virtual void setRequiresClause(const QCString &req)=0
virtual void parseSource(ClangTUParser *clangParser)=0
virtual void moveArgumentList(std::unique_ptr< ArgumentList > al)=0
bool isAbsolutePath(const QCString &fileName)
static EmojiEntityMapper * instance()
Returns the one and only instance of the Emoji entity mapper
A class that generates a dynamic tree view side panel.
virtual void insertMember(MemberDef *)=0
static void addMemberFunction(const Entry *root, MemberName *mn, const QCString &scopeName, const QCString &namespaceName, const QCString &className, const QCString &funcTyp, const QCString &funcName, const QCString &funcArgs, const QCString &funcTempList, const QCString &exceptions, const QCString &type, const QCString &args, bool isFriend, uint64 spec, const QCString &relates, const QCString &funcDecl, bool overloaded, bool isFunc)
virtual void setExplicitExternal(bool b, const QCString &df, int line, int column)=0
bool checkExtension(const QCString &fName, const QCString &ext)
QCString exception
throw specification
QCString bitfields
member's bit fields
ClassDefMutable * toClassDefMutable(Definition *d)
static void findMainPageTagFiles(Entry *root)
virtual void writeSourceBody(OutputList &ol, ClangTUParser *clangParser)=0
GroupDef * createGroupDef(const QCString &fileName, int line, const QCString &name, const QCString &title, const QCString &refFileName)
std::string expandAlias(const std::string &aliasName, const std::string &aliasValue)
virtual void setDefinition(const QCString &d)=0
bool referencesRelation
do we need to show the references relation?
virtual void setProtection(Protection p)=0
static void copyStyleSheet()
bool search(const std::string &str, Match &match, const Ex &re, size_t pos)
Search in a given string str starting at position pos for a match against regular expression re.
const T * find(const std::string &key) const
find an object given the key.
virtual void writeDocumentation(OutputList &ol)=0
static ClassDef::CompoundType convertToCompoundType(int section, uint64 specifier)
const ClassDef * resolveClass(const Definition *scope, const QCString &name, bool maybeUnlinkable=false, bool mayBeHidden=false)
Find the class definition matching name within the scope set.
static void copyLogo(const QCString &outputOption)
virtual bool hasReferencesRelation() const =0
ArgumentList argList
member arguments as a list
virtual void enableCallerGraph(bool e)=0
virtual void setHidden(bool b)=0
static ClassLinkedMap * classLinkedMap
void parse(const QCString &fileName)
Parses a user provided layout
virtual const QCString & initializer() const =0
int getScopeFragment(const QCString &s, int p, int *l)
virtual void addUsingDirective(const NamespaceDef *nd)=0
virtual void addMembersToTemplateInstance(const ClassDef *cd, const ArgumentList &templateArguments, const QCString &templSpec)=0
static const uint64 Singleton
static void addSourceReferences()
void writeEmojiFile(TextStream &t)
Writes the list of supported emojis to the given file.
virtual void setFileDef(const FileDef *fd)=0
virtual bool isRelated() const =0
int guessSection(const QCString &name)
std::map< std::string, int > TemplateNameMap
virtual QCString qualifiedNameWithTemplateParameters(const ArgumentLists *actualParams=0, uint *actualParamIndex=0) const =0
QCString docFile
file in which the documentation was found
void replaceNamespaceAliases(QCString &scope, int i)
virtual QCString typeString() const =0
virtual void setEnumClassScope(const ClassDef *cd)=0
virtual bool hasGroupTitle() const =0
virtual QCString requiresClause() const =0
static Definition * buildScopeFromQualifiedName(const QCString &name_, SrcLangExt lang, const TagInfo *tagInfo)
ConceptDefMutable * toConceptDefMutable(Definition *d)
void enable(OutputGenerator::OutputType o)
static void writeHeaderFile(TextStream &t, const QCString &cssname)
static int findFunctionPtr(const std::string &type, SrcLangExt lang, int *pLength=0)
virtual QCString trDir(bool first_capital, bool singular)=0
virtual bool isForwardDeclared() const =0
Returns TRUE if this class represents a forward declaration of a template class
static std::string cleanDirPath(const std::string &path)
virtual void setTemplateArguments(const ArgumentList &al)=0
std::set< const NamespaceDef * > NamespaceDefSet
virtual void setGroupTitle(const QCString &newtitle)=0
QCString write
property write accessor
virtual bool isLinkable() const =0
return TRUE iff a link to this class is possible (either within this project, or as a cross-reference...
std::vector< Grouping > groups
list of groups this entry belongs to
std::unique_ptr< ArgumentList > stringToArgumentList(SrcLangExt lang, const QCString &argsString, QCString *extraTypeChars=0)
static void findTagLessClasses(std::vector< ClassDefMutable * > &candidates, const ClassDef *cd)
A list of MemberDef objects as shown in documentation sections.
virtual void setReimplements(const MemberDef *md)=0
bool stripPrefix(const QCString &prefix)
bool matchArguments2(const Definition *srcScope, const FileDef *srcFileScope, const ArgumentList *srcAl, const Definition *dstScope, const FileDef *dstFileScope, const ArgumentList *dstAl, bool checkCV)
static void filterMemberDocumentation(const Entry *root, const QCString &relates)
static std::string resolveSymlink(const std::string &path)
static void createTemplateInstanceMembers()
static void addMemberToSearchIndex(const MemberDef *md)
QCString right(size_t len) const
virtual void setTemplateArguments(const ArgumentList &al)=0
Generator for Man page output.
static TemplateNameMap getTemplateArgumentsInName(const ArgumentList &templateArguments, const std::string &name)
QCString & prepend(const char *s)
bool resize(size_t newlen)
Resizes the string to hold newlen characters (this value should also count the 0-terminator).
uint qstrlen(const char *str)
virtual MemberType memberType() const =0
bool openOutputFile(const QCString &outFile, std::ofstream &f)
void computeDirDependencies()
QCString & sprintf(const char *format,...)
static void writeTabData()
Additional initialization after indices have been created
virtual void setFileName(const QCString &fn)=0
static const uint64 Published
virtual void setShowLineNo(bool)=0
virtual const ArgumentList & templateArguments() const =0
Returns the template arguments of this class
ClassDefMutable * getClassMutable(const QCString &key)
static void combineUsingRelations()
static ClangUsrMap * clangUsrMap
static void computeMemberReferences()
std::set< const ClassDef * > ClassDefSet
NamespaceDefMutable * getResolvedNamespaceMutable(const QCString &key)
virtual const GroupDef * getGroupDef() const =0
virtual void insertMember(MemberDef *md)=0
virtual void setGroupScope(Definition *d)=0
void endFile(OutputList &ol, bool skipNavIndex, bool skipEndContents, const QCString &navPath)
void clear()
Clears all values in the cache.
virtual void insertMember(MemberDef *md)=0
static void findUsingDeclImports(const Entry *root)
virtual void mergeReferencedBy(const Definition *other)=0
#define Config_getList(name)
static void writeExtensionsFile(TextStream &t)
static bool scopeIsTemplate(const Definition *d)
virtual bool isTemplate() const =0
Returns TRUE if this class is a template
static std::multimap< std::string, const Entry * > g_classEntries
virtual void mergeMembers()=0
static PageLinkedMap * exampleLinkedMap
static FileNameLinkedMap * includeNameLinkedMap
This is an alternative implementation of QCString.
QCString req
C++20 requires clause