68 std::unique_ptr<MemberDef>
deepCopy()
const override;
108 bool isSlot()
const override;
119 bool isDCOP()
const override;
147 bool isCopy()
const override;
150 bool isWeak()
const override;
154 bool isNew()
const override;
275 const QCString &fileName,
int startLine,
bool hasDocs,
339 bool inGroup,
int indentLevel,
const ClassDef *inheritFrom=
nullptr,
const QCString &inheritId=
QCString())
const override;
342 bool inGroup,
bool showEnumValues=
false,
bool
343 showInline=
false)
const override;
353 const std::unique_ptr<ArgumentList> &actualArgs)
const override;
357 bool onlyText=
false)
const override;
387 const ArgumentList &al,
bool writeReqClause=
true)
const;
534 return std::make_unique<MemberDefImpl>(defFileName,defLine,defColumn,type,name,args,excp,prot,virt,
535 stat,related,t,tal,al,metaData);
555 std::unique_ptr<MemberDef>
deepCopy()
const override {
961 const std::unique_ptr<ArgumentList> &actualArgs)
const override
966 bool inGroup,
int indentLevel,
const ClassDef *inheritFrom=
nullptr,
const QCString &inheritId=
QCString())
const override
977 bool onlyText=
false)
const override
988 auto amd = std::make_unique<MemberDefAliasImpl>(newScope,aliasMd);
1000 if ((i=clRealName.
find(
'<'))!=-1)
1002 clRealName=clRealName.
left(i);
1004 if ((i=clRealName.
findRev(
"::"))!=-1)
1006 clRealName=clRealName.
right(clRealName.
length()-i-2);
1008 while ((i=s.
find(clRealName,p))!=-1)
1010 result+=s.
mid(p,i-p);
1011 size_t j=clRealName.
length()+i;
1015 result+=clRealName+t;
1022 p=i+
static_cast<int>(clRealName.
length());
1080 if (!isDefine) ol.
docify(
" ");
1090 cName=scope->
name();
1091 int il=cName.
find(
'<');
1093 if (il!=-1 && ir!=-1 && ir>il)
1095 cName=cName.
mid(il,ir-il+1);
1117 bool paramTypeStarted=
false;
1118 auto alIt = defArgList.
begin();
1119 while (alIt!=defArgList.
end())
1122 if (isDefine || first)
1125 paramTypeStarted=
true;
1139 if (sep!=
"::") { atype=
substitute(atype,
"::",sep); }
1152 int starPos = atype.
find(
'*');
1153 if (starPos==-1) starPos = atype.
find(
'&');
1154 funcPtrPos = atype.
find(
")(");
1155 if (starPos!=-1 && funcPtrPos>starPos)
1157 funcPtrPos=starPos+1;
1164 funcPtrPos==-1 ? atype : atype.
left(funcPtrPos),
1171 if (paramTypeStarted)
1174 paramTypeStarted=
false;
1220 if (alIt!=defArgList.
end())
1232 if (key!=
",") key+=
":";
1236 paramTypeStarted=
true;
1284 int index = exception.
find(
'(');
1291 for (
int comma = exception.
find(
',', index); comma!=-1; )
1297 comma = exception.
find(
',', index);
1299 int close = exception.
find(
')', index);
1309 "missing ) in exception list on member {}",md->
name());
1322 if (
'{'==exception.
at(0))
1325 int index = exception.
find(
';');
1332 index = exception.
find(
';',oldIndex);
1463 init(
this,t,a,e,p,v,s,r,mt,tal,al,meta);
1493 result->m_def =
m_def ;
1494 result->m_anc =
m_anc ;
1495 result->m_decl =
m_decl ;
1497 result->m_read =
m_read ;
1563 result->m_isLinkableCached = 0;
1564 result->m_isConstructorCached = 0;
1565 result->m_isDestructorCached = 0;
1630 const ClassDef *mcd = md->getClassDef();
1681 bool separateMemberPages =
Config_getBool(SEPARATE_MEMBER_PAGES);
1682 bool inlineSimpleClasses =
Config_getBool(INLINE_SIMPLE_STRUCTS);
1708 if (inlineSimpleClasses && classDef->
isSimple())
1729 "Internal inconsistency: member {} does not belong to any container!",
name()
1813 bool extractPrivateVirtual =
Config_getBool(EXTRACT_PRIV_VIRTUAL);
1863 if (!groupDef && !nspace &&
1878 if (
m_stat && classDef==
nullptr && !extractStatic)
1953 bool onlyText)
const
1961 if (!hideScopeNames)
1967 if (classDef && (gd || mod) && !
isRelated())
1971 else if (nspace && (gd || fd || mod))
2031 bool extractPrivateVirtual =
Config_getBool(EXTRACT_PRIV_VIRTUAL);
2035 bool hideFriendCompounds =
Config_getBool(HIDE_FRIEND_COMPOUNDS);
2047 bool visibleIfStatic = !(
getClassDef()==
nullptr &&
2054 bool visibleIfDocumented = (!hideUndocMembers ||
2061 bool visibleIfEnabled = !(hideUndocMembers &&
2068 bool visibleIfFriendCompound = !(hideFriendCompounds &&
2081 m_mtype==MemberType::Friend ||
2082 (
m_prot==Protection::Private &&
2097 bool visibleIfNotDefaultCDTor = !(cOrDTor &&
2112 bool visible = visibleIfStatic && visibleIfDocumented &&
2113 visibleIfEnabled && visibleIfPrivate &&
2114 visibleIfNotDefaultCDTor &&
2115 visibleIfFriendCompound &&
2142 if (lang==SrcLangExt::Python)
2174 for (
auto it = al.
begin(); it!=al.
end();)
2204 if (exception.
isEmpty())
return args;
2206 int eqPos = pos!=-1 ? args.
find(
'=',pos) : -1;
2207 if (eqPos==-1)
return args+
" "+exception;
2208 return args.
left(eqPos)+
" "+exception+
" "+args.
mid(eqPos);
2218 bool inGroup,
int indentLevel,
const ClassDef *inheritedFrom,
const QCString &inheritId)
const
2224 if (!inGroup &&
m_mtype==MemberType::EnumValue)
return;
2227 ASSERT (cd!=
nullptr || nd!=
nullptr || fd!=
nullptr || gd!=
nullptr || mod!=
nullptr);
2232 if (d==gd || d==mod)
2244 err(
"No context could be derived for member '{}'\n",
name());
2267 bool writeAnchor = (inGroup ||
getGroupDef()==
nullptr) &&
2283 if (!detailsVisible)
2295 for (
int j=0;j<indentLevel;j++)
2313 if (
isTypedef() && lang != SrcLangExt::Slice)
2319 if (lang==SrcLangExt::Python)
2330 static const reg::Ex r(R
"(@\d+)");
2332 std::string stype = ltype.
str();
2333 bool endAnonScopeNeeded=
false;
2341 static const reg::Ex ar(R
"([\w@:]*@\d+[\w@:]*)");
2344 int ai =
static_cast<int>(amatch.
position());
2345 int al =
static_cast<int>(amatch.
length());
2347 if (annoClassDef && amd==
nullptr)
2354 QCString typePlaceholder =
" { ... } ";
2355 if (lang==SrcLangExt::Cpp)
2365 int i =
static_cast<int>(match.position());
2366 int l =
static_cast<int>(match.length());
2371 else if (ltype==
"@")
2385 if (htmlOn && !ltype.
isEmpty())
2410 bool extractPrivateVirtual =
Config_getBool(EXTRACT_PRIV_VIRTUAL);
2414 m_mtype==MemberType::Friend ||
2415 (
m_prot==Protection::Private &&
2420 if (!
name().isEmpty() &&
2473 .setIndentLevel(indentLevel)
2509 ol.
docify(
" [implementation]");
2534 for (
const auto &s : sl)
2553 if (
isAddable()) sl.emplace_back(
"add");
2557 for (
const auto &s : sl)
2578 if (endAnonScopeNeeded)
2596 .setIndexWords(inheritedFrom==
nullptr)
2597 .setSingleLine(
true))
2599 if (!ast->isEmpty())
2650 bool extractPrivateVirtual =
Config_getBool(EXTRACT_PRIV_VIRTUAL);
2667 (alwaysDetailedSec &&
2722 if (!hideUndocMembers)
2725 docFilter = docFilter || docInfo;
2745 (docFilter && staticFilter && moduleFilter && privateFilter && friendCompoundFilter && !
isHidden());
2757 bool inlineSimpleStructs =
Config_getBool(INLINE_SIMPLE_STRUCTS);
2761 bool simpleFilter = (
hasBriefDescription() || !hideUndocMembers) && inlineSimpleStructs &&
2766 bool result = visible || simpleFilter;
2782 (
protection()!=Protection::Public || lvirt!=Specifier::Normal ||
2798 bool optVhdl = lang==SrcLangExt::VHDL;
2806 if (
isFriend()) sl.emplace_back(
"friend");
2807 else if (
isRelated()) sl.emplace_back(
"related");
2811 if (inlineInfo &&
isInline()) sl.emplace_back(
"inline");
2812 if (
isExplicit()) sl.emplace_back(
"explicit");
2813 if (
isMutable()) sl.emplace_back(
"mutable");
2815 if (
isStatic()) sl.emplace_back(
"static");
2829 if (
isAddable()) sl.emplace_back(
"add");
2834 if (
isFinal()) sl.emplace_back(
"final");
2835 if (
isAbstract()) sl.emplace_back(
"abstract");
2836 if (
isOverride()) sl.emplace_back(
"override");
2837 if (
isInitonly()) sl.emplace_back(
"initonly");
2838 if (
isSealed()) sl.emplace_back(
"sealed");
2839 if (
isNew()) sl.emplace_back(
"new");
2840 if (
isOptional()) sl.emplace_back(
"optional");
2841 if (
isRequired()) sl.emplace_back(
"required");
2848 if (
isAssign()) sl.emplace_back(
"assign");
2849 else if (
isCopy()) sl.emplace_back(
"copy");
2850 else if (
isRetain()) sl.emplace_back(
"retain");
2851 else if (
isWeak()) sl.emplace_back(
"weak");
2852 else if (lang!=SrcLangExt::CSharp &&
isStrong()) sl.emplace_back(
"strong");
2853 else if (
isUnretained()) sl.emplace_back(
"unsafe_unretained");
2857 if (
protection()==Protection::Protected) sl.emplace_back(
"protected");
2858 else if (
protection()==Protection::Private) sl.emplace_back(
"private");
2859 else if (
protection()==Protection::Package) sl.emplace_back(
"package");
2861 if (lvirt==Specifier::Virtual) sl.emplace_back(
"virtual");
2862 else if (lvirt==Specifier::Pure) sl.emplace_back(
"pure virtual");
2863 if (
isSignal()) sl.emplace_back(
"signal");
2864 if (
isSlot()) sl.emplace_back(
"slot");
2865 if (
isDefault()) sl.emplace_back(
"default");
2866 if (
isDelete()) sl.emplace_back(
"delete");
2867 if (
isNoExcept()) sl.emplace_back(
"noexcept");
2870 if (
isReadonly()) sl.emplace_back(
"readonly");
2871 if (
isBound()) sl.emplace_back(
"bound");
2882 sl.emplace_back(
"implementation");
2887 sl.emplace_back(
"inherited");
2893 sl.emplace_back(
"implementation");
2898 bool alreadyAdded = std::find(sl.begin(), sl.end(), sx) != sl.end();
2916 warn_uncond(
"Call graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
2938 warn_uncond(
"Caller graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
2986 int markerPos = reimplFromLine.
find(
"@0");
3014 reimplFromLine.
length()-markerPos-2));
3019 err(
"translation error: no marker in trReimplementsFromList()\n");
3030 for (
const auto &bmd : bml)
3032 const ClassDef *bcd=bmd->getClassDef();
3049 auto replaceFunc = [&bml,&ol](
size_t entryIndex)
3052 auto it = bml.
begin();
3056 while (it!=bml.
end())
3062 if (cnt==entryIndex)
break;
3185 bool hasInits =
false;
3190 if (fmd->isLinkable())
3192 if (!fmd->initializer().isEmpty())
3203 if (fmd->isLinkable())
3216 ol.
startDoxyAnchor(cfname,cname,fmd->anchor(),fmd->name(),fmd->argsString());
3227 if (!fmd->initializer().isEmpty())
3243 bool hasBrief = !fmd->briefDescription().isEmpty();
3244 bool hasDetails = !fmd->documentation().isEmpty();
3254 .setIndexWords(
true));
3264 .setIndexWords(
true));
3288 ldef = title =
"anonymous enum";
3311 std::string sdef = ldef.
str();
3318 static const reg::Ex ar(R
"([\w@:]*@\d+[\w@:]*)");
3333 int ep = ldef.
find(
"::");
3339 ldef=ldef.
left(sp+1)+ldef.
mid(ep+2);
3343 int dp = ldef.
find(
':');
3346 ldef=ldef.
left(dp+1);
3348 int l=
static_cast<int>(ldef.
length());
3351 while (i>=0 && (
isId(ldef.
at(i)) || ldef.
at(i)==
':')) i--;
3352 while (i>=0 && isspace(
static_cast<uint8_t
>(ldef.
at(i)))) i--;
3356 ldef =
"("+ldef.
left(i+1)+
")"+ldef.
mid(i+1);
3374 if (inGroup && fd && showGroupedMembInc)
3390 bool isIDLorJava = lang==SrcLangExt::IDL || lang==SrcLangExt::Java;
3400 if (isIDLorJava || forceLocalIncludes) ol.
docify(
"\"");
else ol.
docify(
"<");
3411 if (isIDLorJava || forceLocalIncludes) ol.
docify(
"\"");
else ol.
docify(
">");
3422 if (
m_mtype==MemberType::Define)
3429 if (srcLangExt == SrcLangExt::Lex)
3431 langCorrected =
".doxygen_lex_c";
3432 srcLangExt = SrcLangExt::Cpp;
3435 intf->resetCodeParserState();
3441 .setInlineFragment(
true)
3443 .setShowLineNumbers(
false)
3446 codeOL.endCodeFragment(
"DoxyCode");
3453 int memCount,
int memTotal,
3463 bool hasParameterList =
false;
3473 bool optVhdl = lang==SrcLangExt::VHDL;
3479 const Definition *scopedContainer = container;
3485 ciname = (
toGroupDef(container))->groupTitle();
3501 doxyName.
prepend(scopeName+sep);
3515 if (title.
at(0)==
'@')
3517 ldef = title =
"anonymous enum";
3522 if (lang==SrcLangExt::Cpp)
3534 if (lang==SrcLangExt::Cpp)
3548 if (ldef.
at(0)==
'@')
3557 if (lang == SrcLangExt::Slice)
3576 bool htmlEndLabelTable=
false;
3579 static const reg::Ex r(R
"(@\d+)");
3581 std::string sdef = ldef.str();
3588 for (
const auto &vmd : *ml)
3590 if (vmd->isEnumerate() && match.str()==vmd->name())
3596 QCString suffix = match.suffix().str();
3618 static const reg::Ex ar(R
"([\w@:]*@\d+[\w@:]*)");
3626 if (annoClassDef && amd==
nullptr)
3635 annoClassDef->
anchor(),annTypeName);
3640 QCString typePlaceholder =
" { ... } ";
3641 if (lang==SrcLangExt::Cpp)
3650 prefix = match.prefix().str();
3723 htmlEndLabelTable=
true;
3730 int ep = ldef.
find(
"::");
3736 ldef=ldef.
left(sp+1)+ldef.
mid(ep+2);
3738 ldef=ldef.
mid(ep+2);
3742 int dp = ldef.
find(
':');
3745 ldef=ldef.
left(dp+1);
3747 int dl=
static_cast<int>(ldef.
length());
3750 while (i>=0 && (
isId(ldef.
at(i)) || ldef.
at(i)==
':')) i--;
3751 while (i>=0 && isspace(
static_cast<uint8_t
>(ldef.
at(i)))) i--;
3755 ldef=
"("+ldef.
left(i+1)+
")"+ldef.
mid(i+1);
3765 else if (lang==SrcLangExt::Slice)
3776 if (scope==
nullptr) scope = nd;
3783 if (scope==
nullptr) scope = nd;
3810 hasParameterList=
true;
3820 for (
const auto &s : sl)
3829 if (hasParameterList)
3844 if (htmlEndLabelTable)
3847 ol.
writeString(
" <td class=\"mlabels-right\">\n");
3850 for (
const auto &s : sl)
3887 .setSingleLine(
true));
3910 .setIndexWords(
true));
3921 .setIndexWords(
true));
3934 .setIndexWords(
true));
3951 .setIndexWords(
true));
3962 .setIndexWords(
true));
3994 static const reg::Ex re1(R
"(\a\w*::)");
3995 static const reg::Ex re2(R
"(\a\w*<[^>]*>::)");
3997 std::string t = ts.
str();
4000 t = match.prefix().str() + match.suffix().str();
4021 if (scope) cname = scope->
name();
4022 if (doxyName.
at(0)==
'@')
4024 doxyName=
"__unnamed__";
4077 .setSingleLine(
true));
4101 if (
m_mtype == MemberType::Define)
4103 return "macro definition";
4105 else if (
m_mtype == MemberType::Enumeration)
4107 return "enumeration";
4109 return to_string_lower(
m_mtype);
4151 name().find(
'@')==-1 && d && d->
name().
find(
'@')==-1 &&
4173 if (!fmd->isLinkableInProject())
4177 warn(fmd->getDefFileName(),fmd->getDefLine(),
"Documentation for enum member '{}{}{}' is missing.",
4213 bool isPython =
getLanguage()==SrcLangExt::Python;
4234 for (
auto it = al.
begin(); it!=al.
end() && allDoc; ++it)
4238 !(isPython && (a.
name==
"self" || a.
name==
"cls"))
4246 if (!allDoc && declAl.
empty())
4249 for (
auto it = al.
begin(); it!=al.
end() && allDoc; ++it)
4253 !(isPython && (a.
name==
"self" || a.
name==
"cls"))
4277 bool isFortran =
getLanguage()==SrcLangExt::Fortran;
4278 bool isFortranSubroutine = isFortran && returnType.
find(
"subroutine")!=-1;
4280 bool isVoidReturn = returnType==
"void" || returnType.
endsWith(
" void");
4281 if (!isVoidReturn && (returnType==
"auto" || returnType.
endsWith(
" auto")))
4287 isVoidReturn = (strippedTrailingReturn==
"void") || (strippedTrailingReturn.
endsWith(
" void"));
4301 "parameters of member {} are not documented",
4308 isFortranSubroutine ||
4316 "return type of member {} is not documented",
4323 isFortranSubroutine ||
4336 int i=baseName.
find(
'<');
4337 if (i!=-1) baseName=baseName.
left(i);
4404 uint8_t md5_sig[16];
4406 MD5Buffer(memAnchor.
data(),
static_cast<unsigned int>(memAnchor.
length()),md5_sig);
4407 MD5SigToString(md5_sig,sigStr);
4412 const QCString &fileName,
int startLine,
4455 const ArgumentList &formalArgs,
const std::unique_ptr<ArgumentList> &actualArgs)
const
4458 std::unique_ptr<ArgumentList> actualArgList = std::make_unique<ArgumentList>(
m_defArgList);
4462 for (
Argument &arg : *actualArgList)
4466 actualArgList->setTrailingReturnType(
4486 mmd->moveArgumentList(std::move(actualArgList));
4490 mmd->setFormalTemplateArguments(formalArgs);
4525 while (p>=0 && isspace(
static_cast<uint8_t
>(
m_initializer.
at(p)))) p--;
4539 if (optimizeOutputForC)
4543 else if (lang==SrcLangExt::Fortran)
4561 memName =
"[" + pd->
name() +
" " +
name() +
"]";
4602 "Internal inconsistency: recursion detected in overload relation for member {}!",
name());
4603 return Specifier::Normal;
4607 while (rmd && v==Specifier::Normal)
4609 v = rmd->
virtualness(count+1)==Specifier::Normal ? Specifier::Normal : Specifier::Virtual;
4619 tagFile <<
" <member kind=\"";
4620 if (
m_mtype == MemberType::Enumeration)
4622 tagFile <<
"enumeration";
4626 tagFile << to_string_lower(
m_mtype);
4628 if (
m_prot!=Protection::Public)
4630 tagFile <<
"\" protection=\"";
4631 if (
m_prot==Protection::Protected) tagFile <<
"protected";
4632 else if (
m_prot==Protection::Package) tagFile <<
"package";
4633 else tagFile <<
"private";
4635 if (
m_virt!=Specifier::Normal)
4637 tagFile <<
"\" virtualness=\"";
4638 if (
m_virt==Specifier::Virtual) tagFile <<
"virtual";
4639 else tagFile <<
"pure";
4643 tagFile <<
"\" static=\"yes";
4653 tagFile <<
" <anchorfile>" <<
convertToXML(fn) <<
"</anchorfile>\n";
4658 tagFile <<
" <clangid>" <<
convertToXML(idStr) <<
"</clangid>\n";
4665 if (!fmd->isReference())
4668 tagFile <<
"\" anchor=\"" <<
convertToXML(fmd->anchor());
4674 tagFile <<
"\">" <<
convertToXML(fmd->name()) <<
"</enumvalue>\n";
4679 tagFile <<
" </member>\n";
4697 else if (
name()==
"__init__" &&
4706 int i=locName.
find(
'<');
4743 else if (
name()==
"__del__" &&
4777 uint32_t numVisibleEnumValues=0;
4780 if (fmd->isBriefSectionVisible()) numVisibleEnumValues++;
4813 uint32_t enumValuesPerLine =
static_cast<uint32_t
>(
Config_getInt(ENUM_VALUES_PER_LINE));
4814 if (numVisibleEnumValues>0 && enumValuesPerLine>0)
4833 if (numVisibleEnumValues>enumValuesPerLine
4834 && (enumMemCount%enumValuesPerLine)==0
4850 fmd->
writeLink(typeDecl,cd,nd,fd,gd,mod);
4867 bool prevVisible = fmdVisible;
4885 if (numVisibleEnumValues>enumValuesPerLine)
4981 if (
isStatic()) qm=
"+";
else qm=
"-";
5016 if (
isStatic()) qm=
"+ ";
else qm=
"- ";
5180 return m_mtype==MemberType::Signal;
5185 return m_mtype==MemberType::Slot;
5190 return m_mtype==MemberType::Variable;
5195 return m_mtype==MemberType::Enumeration;
5200 return m_mtype==MemberType::EnumValue;
5205 return m_mtype==MemberType::Typedef;
5210 return m_mtype==MemberType::Sequence;
5215 return m_mtype==MemberType::Dictionary;
5220 return m_mtype==MemberType::Function;
5230 return m_mtype==MemberType::Define;
5235 return m_mtype==MemberType::Friend;
5240 return m_mtype==MemberType::DCOP;
5245 return m_mtype==MemberType::Property;
5250 return m_mtype==MemberType::Event;
5255 return m_related == Relationship::Related;
5260 return m_related == Relationship::Foreign;
5420 return m_mtype==MemberType::EnumValue &&
5613 auto decSrc = decAlSrc.
begin(), defSrc = defAlSrc.
begin();
5614 for (
auto decIt = decAl.
begin(), defIt = defAl.
begin();
5615 decIt != decAl.
end() && defIt != defAl.
end() && decSrc != decAlSrc.
end() && defSrc != defAlSrc.
end();
5616 ++decIt, ++defIt, ++decSrc, ++defSrc++)
5857 for (
const auto &sx : qualifiers)
6097 auto srcIt = srcAl.
begin();
6098 auto dstIt = dstAl.
begin();
6099 while ( srcIt!=srcAl.
end() && dstIt!=dstAl.
end())
6116 auto srcIt = srcAl.
begin();
6117 auto dstIt = dstAl.
begin();
6119 while ( srcIt!=srcAl.
end() && dstIt!=dstAl.
end())
6169 for (
auto decIt = decAl.
begin(), defIt = defAl.
begin();
6170 decIt!= decAl.
end() && defIt!= defAl.
end();
6200 AUTO_TRACE(
"mdec='{}' mdef='{}' mdec.isPrototype={} mdef.isPrototype={}",
6214 if (sameNumTemplateArgs &&
6252 int mdefLine = mdef->
docLine();
6253 int mdecLine = mdec->
docLine();
6397 bool hideFriendCompounds =
Config_getBool(HIDE_FRIEND_COMPOUNDS);
6399 (
m_type==
"friend class" ||
6400 m_type==
"friend struct" ||
6409 m_type==
"friend union"));
6477 if (src==
nullptr || dst==
nullptr)
return;
6555 return static_cast<const MemberDef*
>(d);
std::vector< ArgumentList > ArgumentLists
This class represents an function or template argument list.
RefQualifierType refQualifier() const
bool hasParameters() const
QCString trailingReturnType() const
bool constSpecifier() const
bool hasDocumentation(bool allowEmptyNames=false) const
bool hasTemplateDocumentation() const
bool volatileSpecifier() const
A abstract class representing of a compound symbol.
virtual QCString compoundTypeString() const =0
Returns the type of compound as a string.
virtual int isBaseClass(const ClassDef *bcd, bool followInstances, const QCString &templSpec=QCString()) const =0
Returns true iff bcd is a direct or indirect base class of this class.
virtual ArgumentLists getTemplateParameterLists() const =0
Returns the template parameter lists that form the template declaration of this class.
virtual bool isObjectiveC() const =0
Returns true if this class is implemented in Objective-C.
virtual bool isSimple() const =0
virtual ClassDef * categoryOf() const =0
Returns the class of which this is a category (Objective-C only).
virtual CompoundType compoundType() const =0
Returns the type of compound this is, i.e. class/struct/union/...
const Definition * getAlias() const
const Definition * getScope() const
DefinitionAliasMixin(const Definition *scope, const Definition *alias)
The common base class of all entity definitions found in the sources.
virtual QCString docFile() const =0
virtual const QCString & localName() const =0
virtual int getEndBodyLine() const =0
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual int docLine() const =0
virtual QCString getDefFileName() const =0
virtual bool isLinkable() const =0
virtual int getDefLine() const =0
virtual DefType definitionType() const =0
virtual QCString anchor() const =0
virtual int inbodyLine() const =0
virtual const FileDef * getBodyDef() const =0
virtual int briefLine() const =0
virtual bool hasDocumentation() const =0
virtual bool isLinkableInProject() const =0
virtual QCString briefDescription(bool abbreviate=false) const =0
virtual bool hasUserDocumentation() const =0
virtual bool isAnonymous() const =0
virtual QCString getReference() const =0
virtual QCString documentation() const =0
virtual QCString qualifiedName() const =0
virtual QCString briefFile() const =0
virtual CodeSymbolType codeSymbolType() const =0
virtual QCString getOutputFileBase() const =0
virtual Definition * getOuterScope() const =0
virtual int getStartBodyLine() const =0
virtual bool isReference() const =0
virtual QCString inbodyDocumentation() const =0
virtual QCString inbodyFile() const =0
virtual QCString displayName(bool includeScope=true) const =0
virtual const QCString & name() const =0
int getDefLine() const override
bool isReference() const override
QCString briefDescription(bool abbreviate=false) const override
const QCString & name() const override
void writeSourceDef(OutputList &ol) const override
bool hasUserDocumentation() const override
QCString inbodyFile() const override
QCString getDefFileName() const override
bool isExported() const override
void writeSourceRefs(OutputList &ol, const QCString &scopeName) const override
bool hasBriefDescription() const override
QCString docFile() const override
QCString getDefFileExtension() const override
bool hasSources() const override
bool hasRequirementRefs() const override
QCString briefFile() const override
QCString qualifiedName() const override
bool isAnonymous() const override
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=true)
QCString id() const override
void setOuterScope(Definition *def) override
void setReference(const QCString &r) override
void writeRequirementRefs(OutputList &ol) const override
QCString getSourceFileBase() const override
const RefItemVector & xrefListItems() const override
bool hasSourceReffedBy() const override
void setBriefDescription(const QCString &brief, const QCString &briefFile, int briefLine) override
void writeSourceReffedBy(OutputList &ol, const QCString &scopeName) const override
Definition * getOuterScope() const override
void setInbodyDocumentation(const QCString &doc, const QCString &docFile, int docLine) override
QCString getReference() const override
int getEndBodyLine() const override
const QCString & localName() const override
bool hasSourceRefs() const override
void writeInlineCode(OutputList &ol, const QCString &scopeName) const override
bool isHidden() const override
const FileDef * getBodyDef() const override
int getStartBodyLine() const override
void setDefFile(const QCString &df, int defLine, int defColumn) override
QCString inbodyDocumentation() const override
int docLine() const override
int inbodyLine() const override
void setHidden(bool b) override
int briefLine() const override
QCString documentation() const override
int getDefColumn() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
void setDocumentation(const QCString &doc, const QCString &docFile, int docLine, bool stripWhiteSpace=true) override
bool hasDocumentation() const override
SrcLangExt getLanguage() const override
virtual void setBodySegment(int defLine, int bls, int ble)=0
virtual void setDocumentation(const QCString &d, const QCString &docFile, int docLine, bool stripWhiteSpace=true)=0
virtual void addSourceReferences(MemberDef *d, const QCString &sourceRefName)=0
virtual void setInbodyDocumentation(const QCString &d, const QCString &docFile, int docLine)=0
virtual void mergeRefItems(Definition *d)=0
virtual void setBodyDef(const FileDef *fd)=0
virtual void setBriefDescription(const QCString &b, const QCString &briefFile, int briefLine)=0
virtual void addSourceReferencedBy(MemberDef *d, const QCString &sourceRefName)=0
Representation of an call graph.
static bool suppressDocWarnings
static bool parseSourcesNeeded
static ParserManager * parserManager
static NamespaceDefMutable * globalScope
bool inSort(const Example &ex)
A model of a file symbol.
virtual QCString absFilePath() const =0
A model of a group of symbols.
bool hasEnumValues() const override
bool isConstEval() const override
const ClassDef * getCachedTypedefVal() const override
NamespaceDef * getNamespaceDef() override
const NamespaceDef * getNamespaceDef() const override
bool hasExamples() const override
GroupDef * getGroupDef() override
QCString getDeclFileName() const override
QCString argsString() const override
bool isSettable() const override
bool isConstrained() const override
bool getGroupHasDocs() const override
const ClassDef * getClassDef() const override
const MemberDef * inheritsDocsFrom() const override
bool hasCallerGraph() const override
QCString enumBaseType() const override
bool isConstInit() const override
bool isFinal() const override
void writeLink(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, bool onlyText=false) const override
const MemberDef * reimplements() const override
bool isOptional() const override
QCString getOutputFileBase() const override
const ClassDef * getClassDefOfAnonymousType() const override
bool isTypeAlias() const override
bool isRequired() const override
bool isRemovable() const override
void setMemberGroup(MemberGroup *grp) override
bool isDeleted() const override
bool isPrivateGettable() const override
bool isSignal() const override
MemberDef * memberDeclaration() const override
bool isFriendClass() const override
const MemberDef * getGroupAlias() const override
bool isStrongEnumValue() const override
bool isAssign() const override
QCString getReadAccessor() const override
int getGroupStartLine() const override
std::unique_ptr< MemberDef > deepCopy() const override
bool isUNOProperty() const override
void warnIfUndocumented() const override
bool hasUserDocumentation() const override
bool isSliceLocal() const override
const ArgumentLists & definitionTemplateParameterLists() const override
bool isPublished() const override
bool isSequence() const override
bool isDictionary() const override
bool isVariable() const override
FileDef * getFileDef() override
MemberDef * toAnonymousMember() const override
QCString getCachedResolvedTypedef() const override
const MemberDef * templateMaster() const override
void warnIfUndocumentedParams() const override
bool isExternal() const override
bool isProperty() const override
bool isWritable() const override
bool isDocumentedFriendClass() const override
int redefineCount() const override
bool isConstExpr() const override
int initializerLines() const override
bool isMaybeVoid() const override
int getMemberGroupId() const override
bool isInitonly() const override
const ExampleList & getExamples() const override
bool hasOneLineInitializer() const override
bool isProtectedGettable() const override
bool hasDocumentation() const override
bool livesInsideEnum() const override
QCString declaration() const override
bool hasCallGraph() const override
bool isCopy() const override
int getDeclLine() const override
bool isEnumerate() const override
const QCString & initializer() const override
bool isReference() const override
TypeSpecifier getMemberSpecifiers() const override
QCString getReference() const override
bool isThreadLocal() const override
bool hasMultiLineInitializer() const override
QCString getCachedTypedefTemplSpec() const override
bool isDocsForDefinition() const override
Grouping::GroupPri_t getGroupPri() const override
bool isTypedefValCached() const override
bool isRaisable() const override
bool isUnretained() const override
bool isGettable() const override
const MemberVector & enumFieldList() const override
bool isObjCProperty() const override
int getDeclColumn() const override
const ArgumentList & declArgumentList() const override
bool isCallable() const override
bool isDefine() const override
bool isLinkableInProject() const override
bool hasDetailedDescription() const override
bool isFriendToHide() const override
QCString excpString() const override
QCString getDeclType() const override
QCString briefDescription(bool) const override
QCString objCMethodName(bool localLink, bool showStatic) const override
const GroupDef * getGroupDef() const override
bool isDestructor() const override
bool isNoDiscard() const override
bool hasDocumentedEnumValues() const override
bool isBound() const override
void detectUndocumentedParams(bool, bool) const override
bool fromAnonymousScope() const override
bool isFunctionPtr() const override
StringVector getLabels(const Definition *container) const override
QCString memberTypeName() const override
std::unique_ptr< MemberDef > createTemplateInstanceMember(const ArgumentList &formalArgs, const std::unique_ptr< ArgumentList > &actualArgs) const override
bool isAddable() const override
QCString getScopeString() const override
QCString getGroupFileName() const override
QCString extraTypeChars() const override
const ArgumentList & argumentList() const override
const ArgumentList & typeConstraints() const override
Specifier virtualness(int) const override
bool isFunctionOrSignalSlot() const override
bool isDefault() const override
bool isPrototype() const override
bool isAttribute() const override
MemberDef * memberDefinition() const override
bool isTypedef() const override
bool isNoExcept() const override
QCString displayDefinition() const override
bool isInline() const override
bool isRelatedOrFriend() const override
bool hasReferencesRelation() const override
bool isStrong() const override
const MemberDef * getMdAlias() const
bool isObjCMethod() const override
bool isAbstract() const override
bool isStatic() const override
bool isPrivateSettable() const override
bool isSealed() const override
bool isRelated() const override
bool isOverride() const override
bool isForeign() const override
bool isImplementation() const override
QCString anchor() const override
const MemberVector & reimplementedBy() const override
VhdlSpecifier getVhdlSpecifiers() const override
bool isMaybeDefault() const override
MemberType memberType() const override
bool isLinkable() const override
bool isProtectedSettable() const override
bool isReadonly() const override
const MemberDef * categoryRelation() const override
ClassDef * getClassDef() override
MemberDefAliasImpl(const Definition *newScope, const MemberDef *md)
const MemberDef * getEnumScope() const override
Protection protection() const override
bool isSlot() const override
const QCString & name() const override
bool isDelete() const override
bool isReadable() const override
bool isEvent() const override
QCString definition() const override
bool isNonAtomic() const override
QCString getWriteAccessor() const override
QCString bitfieldString() const override
DefType definitionType() const override
bool isReimplementedBy(const ClassDef *cd) const override
bool isDCOP() const override
void writeEnumDeclaration(OutputList &typeDecl, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod) const override
bool isDocTransferDone() const override
bool isDetailedSectionVisible(MemberListContainer container) const override
bool isNotFriend() const override
void writeDeclaration(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, bool inGroup, int indentLevel, const ClassDef *inheritFrom=nullptr, const QCString &inheritId=QCString()) const override
const MemberList * getSectionList(const Definition *container) const override
bool isTemplateSpecialization() const override
QCString typeString() const override
const ModuleDef * getModuleDef() const override
bool isExplicit() const override
CodeSymbolType codeSymbolType() const override
MemberDef * fromAnonymousMember() const override
bool isConstructor() const override
bool isTransient() const override
int numberOfFlowKeyWords() const override
bool isFriend() const override
bool isWeak() const override
bool isMutable() const override
QCString requiresClause() const override
MemberDef * resolveAlias() override
const FileDef * getFileDef() const override
QCString fieldType() const override
std::optional< ArgumentList > formalTemplateArguments() const override
const MemberDef * resolveAlias() const override
bool isEnumValue() const override
bool isNew() const override
const MemberDef * getAnonymousEnumType() const override
bool isMaybeAmbiguous() const override
bool hasReferencedByRelation() const override
bool isCSharpProperty() const override
bool hasInlineSource() const override
ClassDef * category() const override
void moveTo(Definition *) override
MemberGroup * getMemberGroup() const override
MemberGroup * m_memberGroup
bool isFunction() const override
bool visibleInIndex() const override
QCString sourceRefName() const override
ClassDef * relatedAlso() const override
bool isRetain() const override
bool isEnumStruct() const override
QCString documentation() const override
bool isBriefSectionVisible() const override
const ArgumentList & templateArguments() const override
~MemberDefAliasImpl() override
StringVector getQualifiers() const override
QCString displayName(bool b=true) const override
QCString anonymousMemberPrefix() const override
QCString qualifiedName() const override
A model of a class/file/namespace member symbol.
virtual QCString typeString() const =0
virtual bool isConstExpr() const =0
virtual bool getGroupHasDocs() const =0
virtual const MemberDef * getAnonymousEnumType() const =0
virtual bool isConstEval() const =0
virtual bool isInitonly() const =0
virtual bool isSignal() const =0
virtual bool isNoExcept() const =0
virtual QCString requiresClause() const =0
virtual bool isDestructor() const =0
virtual bool hasDetailedDescription() const =0
virtual bool isAssign() const =0
virtual bool isExplicit() const =0
virtual MemberDef * memberDefinition() const =0
virtual bool isNew() const =0
virtual QCString declaration() const =0
virtual QCString getCachedResolvedTypedef() const =0
virtual bool isObjCMethod() const =0
virtual bool hasDocumentedEnumValues() const =0
virtual MemberDef * memberDeclaration() const =0
virtual bool isMaybeVoid() const =0
virtual bool isConstructor() const =0
virtual bool isFriend() const =0
virtual void writeEnumDeclaration(OutputList &typeDecl, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod) const =0
virtual bool isForeign() const =0
virtual bool isSealed() const =0
virtual QCString definition() const =0
virtual bool hasExamples() const =0
virtual QCString enumBaseType() const =0
virtual bool isDelete() const =0
virtual void writeDeclaration(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *md, bool inGroup, int indentLevel=0, const ClassDef *inheritFrom=nullptr, const QCString &inheritId=QCString()) const =0
virtual int numberOfFlowKeyWords() const =0
virtual const MemberDef * inheritsDocsFrom() const =0
virtual bool isDefault() const =0
virtual bool isRelated() const =0
virtual bool isDocumentedFriendClass() const =0
virtual bool isConstInit() const =0
virtual bool fromAnonymousScope() const =0
virtual bool isDeleted() const =0
virtual const ClassDef * getCachedTypedefVal() const =0
virtual bool isRelatedOrFriend() const =0
virtual QCString fieldType() const =0
virtual QCString excpString() const =0
virtual bool isSequence() const =0
virtual bool isEnumStruct() const =0
virtual const ClassDef * getClassDef() const =0
virtual bool visibleInIndex() const =0
virtual const MemberDef * getGroupAlias() const =0
virtual bool isOverride() const =0
virtual bool hasReferencesRelation() const =0
virtual const ArgumentList & templateArguments() const =0
virtual GroupDef * getGroupDef()=0
virtual bool isSettable() const =0
virtual MemberDef * fromAnonymousMember() const =0
virtual bool isCSharpProperty() const =0
virtual bool isRetain() const =0
virtual bool isAddable() const =0
virtual bool isTypedef() const =0
virtual ClassDef * category() const =0
virtual bool isSlot() const =0
virtual const MemberVector & enumFieldList() const =0
virtual bool hasCallGraph() const =0
virtual const FileDef * getFileDef() const =0
virtual bool isInline() const =0
virtual bool isEvent() const =0
virtual const ArgumentList & argumentList() const =0
virtual QCString extraTypeChars() const =0
virtual bool isWritable() const =0
virtual bool isMaybeAmbiguous() const =0
virtual bool isPrivateGettable() const =0
virtual bool isStrongEnumValue() const =0
virtual VhdlSpecifier getVhdlSpecifiers() const =0
virtual const MemberVector & reimplementedBy() const =0
virtual int getGroupStartLine() const =0
virtual bool isFunction() const =0
virtual bool isRequired() const =0
virtual bool isAttribute() const =0
virtual bool isExternal() const =0
virtual QCString sourceRefName() const =0
virtual bool isCopy() const =0
virtual QCString displayDefinition() const =0
virtual QCString getScopeString() const =0
virtual int getMemberGroupId() const =0
virtual bool isDictionary() const =0
virtual int getDeclLine() const =0
virtual bool isTypeAlias() const =0
virtual QCString getDeclType() const =0
virtual int getDeclColumn() const =0
virtual bool isStatic() const =0
virtual const MemberDef * reimplements() const =0
virtual bool isMaybeDefault() const =0
virtual bool livesInsideEnum() const =0
virtual QCString getWriteAccessor() const =0
virtual bool hasInlineSource() const =0
virtual bool isTemplateSpecialization() const =0
virtual bool isPrivateSettable() const =0
virtual StringVector getQualifiers() const =0
virtual QCString getCachedTypedefTemplSpec() const =0
virtual QCString bitfieldString() const =0
virtual bool isRaisable() const =0
virtual bool isRemovable() const =0
virtual bool isTypedefValCached() const =0
virtual bool isConstrained() const =0
virtual bool isDocsForDefinition() const =0
virtual bool isBound() const =0
virtual bool hasEnumValues() const =0
virtual QCString anonymousMemberPrefix() const =0
virtual bool isFriendToHide() const =0
virtual bool isReimplementedBy(const ClassDef *cd) const =0
virtual bool isNonAtomic() const =0
virtual const ModuleDef * getModuleDef() const =0
virtual bool isThreadLocal() const =0
virtual bool isDefine() const =0
virtual const NamespaceDef * getNamespaceDef() const =0
virtual bool isPublished() const =0
virtual bool isFunctionPtr() const =0
virtual std::unique_ptr< MemberDef > createTemplateInstanceMember(const ArgumentList &formalArgs, const std::unique_ptr< ArgumentList > &actualArgs) const =0
virtual bool hasCallerGraph() const =0
virtual Grouping::GroupPri_t getGroupPri() const =0
virtual QCString getDeclFileName() const =0
virtual const ArgumentList & typeConstraints() const =0
virtual bool isProtectedSettable() const =0
virtual const ClassDef * getClassDefOfAnonymousType() const =0
virtual bool isImplementation() const =0
virtual bool isProtectedGettable() const =0
virtual QCString objCMethodName(bool localLink, bool showStatic) const =0
virtual bool hasOneLineInitializer() const =0
virtual const MemberDef * templateMaster() const =0
virtual std::optional< ArgumentList > formalTemplateArguments() const =0
virtual bool isObjCProperty() const =0
virtual bool isTransient() const =0
virtual const MemberList * getSectionList(const Definition *container) const =0
virtual bool hasMultiLineInitializer() const =0
virtual Protection protection() const =0
virtual TypeSpecifier getMemberSpecifiers() const =0
virtual bool isOptional() const =0
virtual QCString getReadAccessor() const =0
virtual bool isEnumerate() const =0
virtual bool isGettable() const =0
virtual MemberType memberType() const =0
virtual bool hasReferencedByRelation() const =0
virtual bool isFunctionOrSignalSlot() const =0
virtual bool isReadable() const =0
virtual bool isWeak() const =0
virtual bool isDocTransferDone() const =0
virtual bool isNoDiscard() const =0
virtual QCString memberTypeName() const =0
virtual bool isUnretained() const =0
virtual QCString getGroupFileName() const =0
virtual ClassDef * relatedAlso() const =0
virtual bool isBriefSectionVisible() const =0
virtual MemberDef * toAnonymousMember() const =0
virtual const ArgumentLists & definitionTemplateParameterLists() const =0
virtual StringVector getLabels(const Definition *container) const =0
virtual bool isVariable() const =0
virtual bool isNotFriend() const =0
virtual bool isDCOP() const =0
virtual bool isStrong() const =0
virtual QCString argsString() const =0
virtual bool isSliceLocal() const =0
virtual Specifier virtualness(int count=0) const =0
virtual bool isUNOProperty() const =0
virtual int redefineCount() const =0
virtual const MemberDef * categoryRelation() const =0
virtual int initializerLines() const =0
virtual bool isFinal() const =0
virtual const ArgumentList & declArgumentList() const =0
virtual const ExampleList & getExamples() const =0
virtual bool isAbstract() const =0
virtual bool isMutable() const =0
virtual bool isFriendClass() const =0
virtual bool isCallable() const =0
virtual bool isDetailedSectionVisible(MemberListContainer container) const =0
virtual const MemberDef * getEnumScope() const =0
virtual bool isEnumValue() const =0
virtual bool isPrototype() const =0
virtual void writeLink(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *md, bool onlyText=false) const =0
virtual bool isProperty() const =0
virtual const QCString & initializer() const =0
bool _hasVisibleCallerGraph() const
void _writeCallerGraph(OutputList &ol) const
void insertReimplementedBy(MemberDef *md) override
bool isDCOP() const override
QCString sourceRefName() const override
bool isDetailedSectionVisible(MemberListContainer container) const override
bool _isReimplements() const
bool isFunction() const override
int getDeclColumn() const override
void overrideReferencesRelation(bool e) override
const MemberDef * reimplements() const override
int getMemberGroupId() const override
bool isProperty() const override
bool visibleInIndex() const override
const ArgumentList & argumentList() const override
void setDocumentedEnumValues(bool value) override
bool m_detailedDescriptionCachedValue
bool isTypedefValCached() const override
bool isInline() const override
const ExampleList & getExamples() const override
ArgumentLists m_defTmpArgLists
bool isFriendToHide() const override
void setToAnonymousMember(MemberDef *m) override
void setFromAnonymousScope(bool b) override
bool fromAnonymousScope() const override
void invalidateTypedefValCache() override
bool isFriendClass() const override
void setNamespace(NamespaceDef *nd) override
void setProtection(Protection p) override
const NamespaceDef * getNamespaceDef() const override
void setHidden(bool b) override
void _writeEnumValues(OutputList &ol, const Definition *container, const QCString &cfname, const QCString &ciname, const QCString &cname) const
void _writeTypeConstraints(OutputList &ol) const
bool isSliceLocal() const override
void makeRelated() override
int getGroupStartLine() const override
void warnIfUndocumented() const override
bool m_hasReferencedByRelation
void setDefinition(const QCString &d) override
QCString objCMethodName(bool localLink, bool showStatic) const override
void setMemberType(MemberType t) override
QCString getWriteAccessor() const override
const ArgumentList & typeConstraints() const override
DefType definitionType() const override
void setEnumBaseType(const QCString &type) override
bool isDestructor() const override
StringVector getQualifiers() const override
QCString qualifiedName() const override
void setRedefineCount(int) override
void setAnonymousEnumType(const MemberDef *md) override
bool isOptional() const override
void _writeExamples(OutputList &ol) const
void moveTo(Definition *) override
bool isCallable() const override
QCString getCachedResolvedTypedef() const override
QCString anchor() const override
bool isBriefSectionVisible() const override
const MemberDef * m_categoryRelation
void init(Definition *def, const QCString &t, const QCString &a, const QCString &e, Protection p, Specifier v, bool s, Relationship r, MemberType mt, const ArgumentList &tal, const ArgumentList &al, const QCString &meta)
bool addExample(const QCString &anchor, const QCString &name, const QCString &file) override
void setCategoryRelation(const MemberDef *) override
bool isReference() const override
QCString extraTypeChars() const override
QCString getDeclType() const override
void warnIfUndocumentedParams() const override
VhdlSpecifier getVhdlSpecifiers() const override
bool _hasVisibleCallGraph() const
void setFormalTemplateArguments(const ArgumentList &al) override
void setClassDefOfAnonymousType(const ClassDef *cd) override
bool isDefine() const override
void findSectionsInDocumentation() override
void setFileDef(FileDef *fd) override
const MemberDef * resolveAlias() const override
ArgumentList m_declArgList
std::unique_ptr< MemberDef > deepCopy() const override
void makeForeign() override
uint8_t m_isConstructorCached
bool hasMultiLineInitializer() const override
bool hasCallGraph() const override
QCString memberTypeName() const override
void _writeReimplementedBy(OutputList &ol) const
bool isNew() const override
void setMaxInitLines(int lines) override
void writeDeclaration(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, bool inGroup, int indentLevel, const ClassDef *inheritFrom=nullptr, const QCString &inheritId=QCString()) const override
bool isDocsForDefinition() const override
const QCString & initializer() const override
void setEnumClassScope(ClassDef *cd) override
bool isUnretained() const override
bool isGettable() const override
MemberGroup * getMemberGroup() const override
bool hasUserDocumentation() const override
std::optional< ArgumentList > formalTemplateArguments() const override
std::map< const Definition *, const MemberList * > m_sectionMap
bool isEnumValue() const override
bool isObjCMethod() const override
MemberDef * memberDefinition() const override
bool m_isTypedefValCached
bool m_hasDocumentedReturnType
void setFromAnonymousMember(MemberDef *m) override
QCString m_extraTypeChars
MemberDef * toAnonymousMember() const override
StringVector m_qualifiers
void overrideCallGraph(bool e) override
void setInheritsDocsFrom(const MemberDef *md) override
void setType(const QCString &t) override
Specifier virtualness(int count=0) const override
ClassDefMutable * getClassDefMutable() override
bool hasDetailedDescription() const override
void setMemberGroupId(int id) override
QCString bitfieldString() const override
bool isCSharpProperty() const override
void setSectionList(const Definition *container, const MemberList *sl) override
QCString definition() const override
bool isRaisable() const override
void setTemplateMaster(const MemberDef *mt) override
std::unique_ptr< MemberDef > createTemplateInstanceMember(const ArgumentList &formalArgs, const std::unique_ptr< ArgumentList > &actualArgs) const override
const GroupDef * getGroupDef() const override
bool isRelatedOrFriend() const override
void insertEnumField(MemberDef *md) override
bool isMutable() const override
bool isPublished() const override
bool isLinkableInProject() const override
bool isProtectedSettable() const override
QCString getDeclFileName() const override
void setMemberGroup(MemberGroup *grp) override
void setMemberDeclaration(MemberDef *md) override
QCString anonymousMemberPrefix() const override
QCString enumBaseType() const override
bool isUNOProperty() const override
bool m_hasDocumentedParams
bool m_hasReferencesRelation
void _computeIsConstructor()
size_t _countReimplementedBy() const
bool isRequired() const override
const MemberVector & reimplementedBy() const override
bool isStrong() const override
MemberDef * fromAnonymousMember() const override
void moveDeclArgumentList(std::unique_ptr< ArgumentList > al) override
bool isTypeAlias() const override
void setMemberClass(ClassDef *cd) override
QCString excpString() const override
const MemberDef * templateMaster() const override
void setDocsForDefinition(bool b) override
const ClassDef * getCachedTypedefVal() const override
int initializerLines() const override
void setBitfields(const QCString &s) override
bool getGroupHasDocs() const override
void writeDocumentation(const MemberList *ml, int memCount, int memTotal, OutputList &ol, const QCString &scopeName, const Definition *container, bool inGroup, bool showEnumValues=false, bool showInline=false) const override
const MemberDef * getEnumScope() const override
QCString argsString() const override
bool isMaybeDefault() const override
bool isReimplementedBy(const ClassDef *cd) const override
StringVector getLabels(const Definition *container) const override
bool isTransient() const override
ArgumentList m_defArgList
MemberDef * memberDeclaration() const override
std::optional< ArgumentList > m_formalTemplateArguments
bool isInitonly() const override
bool isAddable() const override
bool isRelated() const override
void moveArgumentList(std::unique_ptr< ArgumentList > al) override
const ClassDef * m_cachedTypedefValue
void setCategory(ClassDef *) override
uint8_t m_isDestructorCached
MemberType memberType() const override
const ClassDef * m_anonymousType
QCString getScopeString() const override
Protection protection() const override
bool isConstructor() const override
void setGroupAlias(const MemberDef *md) override
bool isEnumerate() const override
const ArgumentList & templateArguments() const override
bool isCopy() const override
QCString m_anonymousPrefix
bool isReadonly() const override
QCString declaration() const override
void setTagInfo(const TagInfo *i) override
const ArgumentLists & definitionTemplateParameterLists() const override
void _writeTemplatePrefix(OutputList &ol, const Definition *def, const ArgumentList &al, bool writeReqClause=true) const
bool isStatic() const override
void writeTagFile(TextStream &, bool useQualifiedName, bool showNamespaceMembers) const override
MemberDef * resolveAlias() override
bool isFinal() const override
QCString m_requiresClause
bool isAttribute() const override
const MemberDef * m_enumScope
int redefineCount() const override
bool isDictionary() const override
bool isSlot() const override
bool hasInlineSource() const override
void setAnchor() override
MemberGroup * m_memberGroup
const MemberDef * m_groupAlias
bool isRetain() const override
MemberVector m_redefinedBy
ClassDef * category() const override
void overrideEnumValues(bool e) override
bool isDocTransferDone() const override
bool isDocumentedFriendClass() const override
bool isConstEval() const override
bool hasReferencesRelation() const override
void _writeTagData(const DefType) const
void overrideReferencedByRelation(bool e) override
bool isEnumStruct() const override
bool hasEnumValues() const override
void setInbodyDocumentation(const QCString &d, const QCString &inbodyFile, int inbodyLine) override
bool isExplicit() const override
void _writeCategoryRelation(OutputList &ol) const
void setTemplateSpecialization(bool b) override
bool isTemplateSpecialization() const override
void setInitializer(const QCString &i) override
QCString fieldType() const override
const MemberDef * inheritsDocsFrom() const override
int getDeclLine() const override
void setTypeConstraints(const ArgumentList &al) override
void setVhdlSpecifiers(VhdlSpecifier s) override
void setDocumentation(const QCString &d, const QCString &docFile, int docLine, bool stripWhiteSpace=true) override
bool isImplementation() const override
void _writeMultiLineInitializer(OutputList &ol, const QCString &scopeName) const
bool livesInsideEnum() const override
bool isDelete() const override
QCString getCachedTypedefTemplSpec() const override
void setGroupDef(GroupDef *gd, Grouping::GroupPri_t pri, const QCString &fileName, int startLine, bool hasDocs, MemberDef *member=nullptr) override
bool isNoExcept() const override
QCString getOutputFileBase() const override
bool isWeak() const override
const MemberDef * getAnonymousEnumType() const override
const ModuleDef * getModuleDef() const override
void setDocTransferDone() override
void setRequiresClause(const QCString &req) override
bool isNoDiscard() const override
void setPrototype(bool p, const QCString &df, int line, int column) override
void incrementFlowKeyWordCount() override
const MemberDef * getGroupAlias() const override
bool isConstInit() const override
void setModuleDef(ModuleDef *mod) override
TypeSpecifier getMemberSpecifiers() const override
bool hasReferencedByRelation() const override
void setDeclFile(const QCString &df, int line, int column) override
void makeImplementationDetail() override
Grouping::GroupPri_t getGroupPri() const override
bool isLinkable() const override
bool hasDocumentation() const override
int numberOfFlowKeyWords() const override
bool isProtectedGettable() const override
bool m_hasDetailedDescriptionCached
void setDefinitionTemplateParameterLists(const ArgumentLists &lists) override
const ArgumentList & declArgumentList() const override
void invalidateCachedArgumentTypes() override
bool _isAnonymousBitField() const
QCString m_cachedTypedefTemplSpec
void detectUndocumentedParams(bool hasParamCommand, bool hasReturnCommand) const override
const MemberDef * m_annEnumType
bool isWritable() const override
const MemberDef * m_templateMaster
bool isSealed() const override
QCString briefDescription(bool abbr=false) const override
void setWriteAccessor(const QCString &w) override
bool isAbstract() const override
bool isPrivateSettable() const override
void setArgsString(const QCString &as) override
QCString getReference() const override
bool isSequence() const override
void _computeLinkableInProject()
MemberDefImpl(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)
Grouping::GroupPri_t m_grouppri
void setRelatedAlso(ClassDef *cd) override
void addRequirementReferences(const Definition *) override
bool hasExamples() const override
void resolveUnnamedParameters(const MemberDef *md) override
void setMemberDefinition(MemberDef *md) override
bool isThreadLocal() const override
void writeMemberDocSimple(OutputList &ol, const Definition *container) const override
void cacheTypedefVal(const ClassDef *val, const QCString &templSpec, const QCString &resolvedType) override
QCString documentation() const override
bool isSignal() const override
bool isMaybeVoid() const override
void _writeReimplements(OutputList &ol) const
bool isMaybeAmbiguous() const override
bool hasOneLineInitializer() const override
const MemberList * getSectionList(const Definition *) const override
void setReadAccessor(const QCString &r) override
bool isForeign() const override
void addQualifiers(const StringVector &qualifiers) override
QCString typeString() const override
bool isAssign() const override
bool isStrongEnumValue() const override
void _computeIsDestructor()
bool isNotFriend() const override
const ClassDef * getClassDefOfAnonymousType() const override
void copyArgumentNames(const MemberDef *bmd) override
bool isRemovable() const override
void setExplicitInherited(bool b) override
bool isDeleted() const override
MemberDef * m_groupMember
bool isFriend() const override
ArgumentList m_typeConstraints
ClassDef * relatedAlso() const override
void setReimplements(MemberDef *md) override
void writeLink(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, bool onlyText=false) const override
MemberVector m_enumFields
void writeEnumDeclaration(OutputList &typeDecl, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod) const override
bool isConstExpr() const override
QCString getGroupFileName() const override
bool isExternal() const override
const FileDef * getFileDef() const override
bool isNonAtomic() const override
const MemberDef * categoryRelation() const override
const MemberVector & enumFieldList() const override
const ClassDef * getClassDef() const override
bool isFunctionOrSignalSlot() const override
void overrideInlineSource(bool e) override
void overrideCallerGraph(bool e) override
bool isPrivateGettable() const override
void setExplicitExternal(bool b, const QCString &df, int line, int column) override
MemberDef * m_fromAnnMemb
bool isEvent() const override
void setMemberSpecifiers(TypeSpecifier s) override
bool isFunctionPtr() const override
QCString m_cachedResolvedType
bool hasCallerGraph() const override
bool isObjCProperty() const override
void setEnumScope(MemberDef *md, bool livesInsideEnum=false) override
bool isPrototype() const override
bool isTypedef() const override
QCString displayName(bool=true) const override
void _writeGroupInclude(OutputList &ol, bool inGroup) const
bool hasDocumentedEnumValues() const override
~MemberDefImpl() override=default
uint8_t m_isLinkableCached
bool isVariable() const override
void mergeMemberSpecifiers(TypeSpecifier s) override
QCString requiresClause() const override
bool isConstrained() const override
bool isReadable() const override
QCString getReadAccessor() const override
QCString m_explicitOutputFileBase
void addListReference(const Definition *) override
void setBriefDescription(const QCString &b, const QCString &briefFile, int briefLine) override
bool isDefault() const override
void _writeCallGraph(OutputList &ol) const
bool isOverride() const override
const MemberDef * m_docProvider
bool isSettable() const override
bool isBound() const override
CodeSymbolType codeSymbolType() const override
QCString displayDefinition() const override
virtual void setMemberDeclaration(MemberDef *md)=0
virtual void setDocTransferDone()=0
virtual void resolveUnnamedParameters(const MemberDef *md)=0
virtual void setDocsForDefinition(bool b)=0
virtual void mergeMemberSpecifiers(TypeSpecifier s)=0
virtual void addQualifiers(const StringVector &qualifiers)=0
virtual void moveDeclArgumentList(std::unique_ptr< ArgumentList > al)=0
virtual void setGroupDef(GroupDef *gd, Grouping::GroupPri_t pri, const QCString &fileName, int startLine, bool hasDocs, MemberDef *member=nullptr)=0
virtual void setMemberDefinition(MemberDef *md)=0
virtual void moveArgumentList(std::unique_ptr< ArgumentList > al)=0
virtual void insertReimplementedBy(MemberDef *md)=0
A class representing a group of members.
A list of MemberDef objects as shown in documentation sections.
A vector of MemberDef object.
bool contains(const MemberDef *md) const
void inSort(MemberDef *md)
iterator begin() noexcept
void push_back(const T &value)
An abstract interface of a namespace symbol.
virtual QCString compoundTypeString() const =0
void startCodeFragment(const QCString &style)
Class representing a list of output generators that are written to in parallel.
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md, int sectionLevel=-1)
bool isEnabled(OutputType o)
void writeString(const QCString &text)
void startMemberDeclaration()
void startMemberDoc(const QCString &clName, const QCString &memName, const QCString &anchor, const QCString &title, int memCount, int memTotal, bool showInline)
void startMemberDocName(bool align)
void endParameterExtra(bool last, bool one, bool bracket)
void disable(OutputType o)
void endMemberTemplateParams(const QCString &anchor, const QCString &inheritId)
void endMemberDoc(bool hasArgs)
void startDescTableInit()
void startParameterExtra()
const OutputCodeList & codeGenerators() const
void startParameterList(bool openBracket)
void enable(OutputType o)
void endInlineMemberType()
void endMemberDescription()
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
void startInlineMemberType()
void startInlineMemberDoc()
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
void endDoxyAnchor(const QCString &fn, const QCString &anchor)
void insertMemberAlign(bool templ=false)
void docify(const QCString &s)
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, const DocOptions &options)
void startParagraph(const QCString &classDef=QCString())
void exceptionEntry(const QCString &prefix, bool closeBracket)
void addIndexItem(const QCString &s1, const QCString &s2)
void startDescTableTitle()
void endInlineMemberDoc()
void endMemberDocPrefixItem()
void startParameterDefVal(const char *separator)
void endMemberItem(OutputGenerator::MemberItemType type)
void startDescTable(const QCString &title, const bool hasInits)
void addLabel(const QCString &fName, const QCString &anchor)
void startDescTableData()
void pushGeneratorState()
void endParameterDefVal()
void startParameterType(bool first, const QCString &key)
void disableAllBut(OutputType o)
void startDoxyAnchor(const QCString &fName, const QCString &manName, const QCString &anchor, const QCString &name, const QCString &args)
void endCallGraph(DotCallGraph &g)
void startInlineMemberName()
void writeLabel(const QCString &l, bool isLast)
void startMemberDocPrefixItem()
void endAnonTypeScope(int i1)
void endMemberDeclaration(const QCString &anchor, const QCString &inheritId)
void startParameterName(bool one)
void startMemberItem(const QCString &anchor, OutputGenerator::MemberItemType type, const QCString &id=QCString())
void endInlineMemberName()
void lineBreak(const QCString &style=QCString())
void parseText(const QCString &textStr)
void writeNonBreakableSpace(int num)
void startTextLink(const QCString &file, const QCString &anchor)
void startMemberTemplateParams()
std::unique_ptr< CodeParserInterface > getCodeParser(const QCString &extension)
Gets the interface to the parser associated with a given extension.
This is an alternative implementation of QCString.
QCString & prepend(const char *s)
size_t length() const
Returns the length of the string, not counting the 0-terminator.
bool startsWith(const char *s) const
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
bool endsWith(const char *s) const
char & at(size_t i)
Returns a reference to the character at index i.
int find(char c, int index=0, bool cs=true) const
bool isEmpty() const
Returns true iff the string is empty.
QCString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
QCString & remove(size_t index, size_t len)
const std::string & str() const
QCString simplifyWhiteSpace() const
return a copy of this string with leading and trailing whitespace removed and multiple whitespace cha...
QCString & append(char c)
QCString right(size_t len) const
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string.
int contains(char c, bool cs=true) const
int findRev(char c, int index=-1, bool cs=true) const
QCString left(size_t len) const
bool stripPrefix(const QCString &prefix)
static RequirementManager & instance()
void addRequirementRefsForSymbol(const Definition *symbol)
Implements TextGeneratorIntf for an OutputDocInterface stream.
Text streaming class that buffers data.
virtual QCString trProvidedByCategory()=0
virtual QCString trDefineValue()=0
virtual QCString trExtendsClass()=0
virtual QCString trCallerGraph()=0
virtual QCString trReimplementedInList(int numEntries)=0
virtual QCString trGlobal(bool first_capital, bool singular)=0
virtual QCString trCallGraph()=0
virtual QCString trEnumerationValues()=0
virtual QCString trMore()=0
virtual QCString trInitialValue()=0
virtual QCString trImplementedInList(int numEntries)=0
virtual QCString trSubprogram(bool first_capital, bool singular)=0
virtual QCString trMember(bool first_capital, bool singular)=0
virtual QCString trReimplementedFromList(int numEntries)=0
virtual QCString trVhdlType(VhdlSpecifier type, bool single)=0
virtual QCString trImplementedFromList(int numEntries)=0
Wrapper class for a number of boolean properties.
static bool writeVHDLTypeDocumentation(const MemberDef *mdef, const Definition *d, OutputList &ol)
static void writeSource(const MemberDef *mdef, OutputList &ol, const QCString &cname)
static bool isMisc(const MemberDef *mdef)
ClassDefMutable * toClassDefMutable(Definition *d)
ClassDef * getClass(const QCString &n)
ClassDef * toClassDef(Definition *d)
Class representing a regular expression.
Object representing the matching results.
SubMatch prefix() const
Return the part of the string before the match.
size_t position() const
Returns the position of the match or std::string::npos if no position is set.
SubMatch suffix() const
Return the part of the string after the match.
size_t length() const
Returns the position of the match or std::string::npos if no length is set.
std::string str() const
Returns the matching part as a string.
#define Config_getInt(name)
#define Config_getList(name)
#define Config_getBool(name)
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
std::vector< std::string > StringVector
std::unique_ptr< ArgumentList > stringToArgumentList(SrcLangExt lang, const QCString &argsString, QCString *extraTypeChars=nullptr)
Definition * toDefinition(DefinitionMutable *dm)
#define AUTO_TRACE_ADD(...)
void docFindSections(const QCString &input, const Definition *d, const QCString &fileName)
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &input, const DocOptions &options)
IDocParserPtr createDocParser()
factory function to create a parser
FileDef * toFileDef(Definition *d)
GroupDef * toGroupDef(Definition *d)
Translator * theTranslator
static QCString simplifyTypeForTable(const QCString &s)
static void writeExceptionList(OutputList &ol, const ClassDef *cd, const MemberDef *md)
static void writeExceptionListImpl(OutputList &ol, const ClassDef *cd, const MemberDef *md, QCString const &exception)
static QCString stripTrailingReturn(const QCString &trailRet)
static QCString combineArgsAndException(QCString args, QCString exception)
static bool writeDefArgumentList(OutputList &ol, const Definition *scope, const MemberDef *md)
static std::mutex g_hasDetailedDescriptionMutex
static std::mutex g_docCrossReferenceMutex
std::unique_ptr< MemberDef > createMemberDefAlias(const Definition *newScope, const MemberDef *aliasMd)
static void invalidateCachedTypesInArgumentList(ArgumentList &al)
static std::mutex g_detectUndocumentedParamsMutex
static void transferArgumentDocumentation(ArgumentList &decAl, ArgumentList &defAl)
void addDocCrossReference(const MemberDef *s, const MemberDef *d)
static std::mutex g_cachedAnonymousTypeMutex
MemberDefMutable * toMemberDefMutable(Definition *d)
void combineDeclarationAndDefinition(MemberDefMutable *mdec, MemberDefMutable *mdef)
static QCString addTemplateNames(const QCString &s, const QCString &n, const QCString &t)
MemberDef * toMemberDef(Definition *d)
static const reg::Ex reAnonymous(R"([\w:@]*@\d+)")
std::unique_ptr< MemberDef > 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.
#define warn_undoc(file, line, fmt,...)
#define warn_uncond(fmt,...)
#define warn(file, line, fmt,...)
#define warn_doc_error(file, line, fmt,...)
ModuleDef * toModuleDef(Definition *d)
NamespaceDef * toNamespaceDef(Definition *d)
bool search(std::string_view 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.
QCString substitute(const QCString &s, const QCString &src, const QCString &dst)
substitute all occurrences of src in s by dst
std::vector< RefItem * > RefItemVector
Web server based search engine.
std::string_view stripWhiteSpace(std::string_view s)
Given a string view s, returns a new, narrower view on that string, skipping over any leading or trai...
This class contains the information about the argument of a function or template.
Options to configure the code parser.
Data associated with an example.
GroupPri_t
Grouping priority.
@ GROUPING_AUTO_DEF
membership in group was defined via @defgroup
LinkifyTextOptions & setScope(const Definition *scope)
LinkifyTextOptions & setSelf(const Definition *self)
LinkifyTextOptions & setFileScope(const FileDef *fileScope)
This struct is used to capture the tag file information for an Entry.
bool matchArguments2(const Definition *srcScope, const FileDef *srcFileScope, const QCString &srcReturnType, const ArgumentList *srcAl, const Definition *dstScope, const FileDef *dstFileScope, const QCString &dstReturnType, const ArgumentList *dstAl, bool checkCV, SrcLangExt lang)
QCString removeRedundantWhiteSpace(const QCString &s)
SrcLangExt getLanguageFromFileName(const QCString &fileName, SrcLangExt defLang)
bool protectionLevelVisible(Protection prot)
QCString substituteTemplateArgumentsInString(const QCString &nm, const ArgumentList &formalArgs, const ArgumentList *actualArgs)
void stripIndentationVerbatim(QCString &doc, const int indentationLevel, bool skipFirstLine)
void writeTypeConstraints(OutputList &ol, const Definition *d, const ArgumentList &al)
QCString stripFromIncludePath(const QCString &path)
QCString tempArgListToString(const ArgumentList &al, SrcLangExt lang, bool includeDefault)
void addRefItem(const RefItemVector &sli, const QCString &key, const QCString &prefix, const QCString &name, const QCString &title, const QCString &args, const Definition *scope)
void writePageRef(OutputList &ol, const QCString &cn, const QCString &mn)
QCString removeAnonymousScopes(const QCString &str)
QCString inlineTemplateArgListToDoc(const ArgumentList &al)
QCString stripExtension(const QCString &fName)
QCString convertToXML(const QCString &s, bool keepEntities, const bool citeEntry)
QCString detab(const QCString &s, size_t &refIndent)
QCString getLanguageSpecificSeparator(SrcLangExt lang, bool classScope)
Returns the scope separator to use given the programming language lang.
void mergeMemberOverrideOptions(MemberDefMutable *md1, MemberDefMutable *md2)
void linkifyText(const TextGeneratorIntf &out, const QCString &text, const LinkifyTextOptions &options)
void writeMarkerList(OutputList &ol, const std::string &markerText, size_t numMarkers, std::function< void(size_t)> replaceFunc)
QCString inlineArgListToDoc(const ArgumentList &al)
void writeExamples(OutputList &ol, const ExampleList &list)
void addHtmlExtensionIfMissing(QCString &fName)
A bunch of utility functions.