55 const char *,
const char *,
69 virtual void addWord(
const char *,
bool) {}
79 const char *lref,
const char *dn)
142 for (;(mg=mgli.current());++mgli)
156 for (;(mg=mgli.current());++mgli)
185 tagFile <<
" <compound kind=\"file\">" <<
endl;
193 for (;(ii=ili.
current());++ili)
200 bool isIDLorJava =
FALSE;
203 const char *locStr = (ii->
local || isIDLorJava) ?
"yes" :
"no";
204 const char *impStr = (ii->
imported || isIDLorJava) ?
"yes" :
"no";
205 tagFile <<
" <includes id=\"" 208 <<
"local=\"" << locStr <<
"\" " 209 <<
"imported=\"" << impStr <<
"\">" 230 for (ci.toFirst();(cd=ci.current());++ci)
247 for (ni.toFirst();(nd=ni.current());++ni)
251 tagFile <<
" <namespace>" <<
convertToXML(nd->
name()) <<
"</namespace>" << endl;
273 for (;(mg=mgli.current());++mgli)
286 tagFile <<
" </compound>" <<
endl;
343 int fileMarkerPos = refText.
find(
"@0");
344 if (fileMarkerPos!=-1)
350 refText.
length()-fileMarkerPos-2));
367 if (rootNode && !rootNode->
isEmpty())
400 for (;(ii=ili.
current());++ili)
405 bool isIDLorJava =
FALSE;
424 if (ii->
local || isIDLorJava)
448 if (ii->
local || isIDLorJava)
470 warn_uncond(
"Include graph for '%s' not generated, too many nodes. Consider increasing DOT_GRAPH_MAX_NODES.\n",
name().
data());
494 warn_uncond(
"Included by graph for '%s' not generated, too many nodes. Consider increasing DOT_GRAPH_MAX_NODES.\n",
name().
data());
527 bool const isConstantGroup)
588 for (;(mg=mgli.current());++mgli)
591 && mg->
header()!=
"[NOHEADER]")
656 static bool generateTreeView =
Config_getBool(
"GENERATE_TREEVIEW");
678 if (!generateTreeView)
698 if (!generateTreeView)
830 err(
"Internal inconsistency: member %d should not be part of " 831 "LayoutDocManager::File entry list\n",lde->
kind());
914 static bool generateTreeView =
Config_getBool(
"GENERATE_TREEVIEW");
915 static bool filterSourceFiles =
Config_getBool(
"FILTER_SOURCE_FILES");
916 static bool latexSourceCode =
Config_getBool(
"LATEX_SOURCE_CODE");
936 if (!generateTreeView)
970 static bool clangAssistedParsing =
Config_getBool(
"CLANG_ASSISTED_PARSING");
971 if (clangAssistedParsing &&
992 bool needs2PassParsing =
994 !filterSourceFiles &&
997 if (needs2PassParsing)
1029 static bool filterSourceFiles =
Config_getBool(
"FILTER_SOURCE_FILES");
1032 (void)filesInSameTu;
1034 static bool clangAssistedParsing =
Config_getBool(
"CLANG_ASSISTED_PARSING");
1035 if (clangAssistedParsing &&
1088 for (;(mg=mgli.current());++mgli)
1106 if (allMemberList && allMemberList->
findRef(md)!=-1)
1111 if (allMemberList==0)
1116 allMemberList->
append(md);
1144 err(
"FileDef::insertMembers(): " 1145 "member `%s' with class scope `%s' inserted in file scope `%s'!\n",
1270 bool imported,
bool indirect)
1327 for (nli.toLast();(nd=nli.current());--nli)
1345 for (udi.toLast();(d=udi.current());--udi)
1367 bool local,
bool imported)
1399 static bool verbatimHeaders =
Config_getBool(
"VERBATIM_HEADERS");
1405 extension!=
".doc" && extension!=
".txt" && extension!=
".dox" &&
1406 extension!=
".md" &&
name().
right(9)!=
".markdown";
1426 for (;(mg=mgli.current());++mgli)
1448 while ((si1=path.
find(
'/',pos1))!=-1)
1450 int si2=dir.
find(
'/',pos2);
1453 if (si2==-1 && path.
mid(pos1,si1-pos2)==dir.
mid(pos2))
1457 if (si1!=si2 || path.
mid(pos1,si1-pos2)!=dir.
mid(pos2,si2-pos2))
1459 return QMAX(pos1-1,0);
1471 for (dli.toFirst();(de=dli.
current());++dli)
1492 int newIndex=newBranchName.
findRev(
'/');
1493 if (newIndex>0) newBranchName=newBranchName.
left(newIndex);
1504 dir->
rename(oldBranchName);
1560 generateIndent(t,de->
parent(),level+1);
1569 t <<
"<img " << FTV_IMGATTRIBS(plastnode) <<
"/>";
1573 t <<
"<img " << FTV_IMGATTRIBS(
lastnode) <<
"/>";
1580 t <<
"<img " << FTV_IMGATTRIBS(pnode) <<
"/>";
1584 t <<
"<img " << FTV_IMGATTRIBS(node) <<
"/>";
1592 t <<
"<img " << FTV_IMGATTRIBS(blank) <<
"/>";
1596 t <<
"<img " << FTV_IMGATTRIBS(vertline) <<
"/>";
1604 indent.
fill(
' ',level*2);
1607 for (dli.toFirst();(de=dli.
current());++dli)
1609 t << indent <<
"<p>";
1610 generateIndent(t,de,0);
1615 t <<
"<img " << FTV_IMGATTRIBS(folderclosed) <<
"/>";
1618 t << indent <<
"<div>\n";
1620 t << indent <<
"</div>\n";
1625 t <<
"<img " << FTV_IMGATTRIBS(
doc) <<
"/>";
1626 t << de->file()->name();
1655 for (dli.toFirst();(de=dli.
current());++dli)
1674 for (;(fd=fni.
current());++fni)
1696 for (nli.toFirst();(nd=nli.current());++nli)
1700 for (nli.toFirst();(nd=nli.current());++nli)
1707 for (unli.toFirst();(und=unli.current());++unli)
1718 for (
cli.toFirst();(ucd=
cli.current());++
cli)
1749 err(
"could not execute %s\n",vercmd.
data());
1752 const int bufSize=1024;
1754 int numRead = (
int)fread(buf,1,bufSize-1,f);
1756 if (numRead>0 && numRead<bufSize)
1766 msg(
"no version available\n");
1833 for (;(ml=mli.
current());++mli)
1843 for (;(ml=mli.
current());++mli)
1890 for (iii.toFirst();(ii=iii.
current());++iii)
1892 if (ii->fileDef && !ii->fileDef->isReference() &&
1893 !filesVisited->find(ii->fileDef->absFilePath()))
1896 incFiles.
append(ii->fileDef->absFilePath());
1897 filesVisited->insert(ii->fileDef->absFilePath(),(
void*)0x8);
1906 QDict<void> includes(257);
QCString convertToXML(const char *s)
MemberListType listType() const
static GroupSDict * groupSDict
ParserInterface * getParser(const char *extension)
virtual void startFontClass(const char *)
void append(const MemberDef *md)
void setAnchors(MemberList *ml)
QCString fileToString(const char *name, bool filter, bool isSourceCode)
void endFileWithNavPath(Definition *d, OutputList &ol)
void endGroupHeader(int extraLevels=0)
QCString stripWhiteSpace() const
void writeClassDeclarations(OutputList &ol, const QCString &title)
bool isLinkableInProject() const
void prepend(const char *key, const T *d)
MemberList * createMemberList(MemberListType lt)
void insertMember(MemberDef *md)
DirEntry * parent() const
void switchToFile(const char *fileName)
virtual QCString trFile(bool first_capital, bool singular)=0
QDict< IncludeInfo > * m_includeDict
virtual QCString getReference() const
void writeBriefDescription(OutputList &ol)
void inSort(const char *key, const T *d)
void startFile(OutputList &ol, const char *name, const char *manName, const char *title, HighlightedItem hli, bool additionalIndices, const char *altSidebarName)
MemberDef * getSourceMember(int lineNr) const
QCString convertNameToFile(const char *name, bool allowDots=FALSE) const
void msg(const char *fmt,...)
void writeIncludedByGraph(OutputList &ol)
void writeInlineClasses(OutputList &ol)
void append(const type *d)
FILE * portable_popen(const char *name, const char *type)
bool generateSourceFile() const
Abstract interface for programming language parsers.
int guessSection(const char *name)
void setInFile(bool inFile)
QList< ListItemInfo > * xrefListItems() const
virtual QCString trFileReference(const char *fileName)=0
static QCString htmlFileExtension
void writeTagFile(FTextStream &)
void writeString(const char *text)
int findRef(const type *d) const
bool generateDoc(const char *fileName, int startLine, Definition *ctx, MemberDef *md, const QCString &docStr, bool indexWords, bool isExample, const char *exampleName=0, bool singleLine=FALSE, bool linkFromIndex=FALSE)
void setLanguage(SrcLangExt lang)
void start(const char *fileName, QStrList &filesInTranslationUnit)
void disableAllBut(OutputGenerator::OutputType o)
virtual void codify(const char *)
void lineBreak(const char *style=0)
FileDef * getBodyDef() const
QCString compoundTypeString() const
virtual bool hasDocumentation() const
QCString title(SrcLangExt lang) const
bool hasDetailedDescription() const
void writeNavigationPath(OutputList &ol) const
void writeTagFile(FTextStream &t)
void writeDocumentation(OutputList &ol, const char *scopeName, Definition *container, const char *title, bool showEnumValues=FALSE, bool showInline=FALSE)
NamespaceSDict * getUsedNamespaces() const
static FileNameList * inputNameList
static LayoutDocManager & instance()
bool isLinkableInProject() const
bool declVisible(const ClassDef::CompoundType *filter=0) const
void writeSource(OutputList &ol, bool sameTu, QStrList &filesInSameTu)
void writeSummaryLinks(OutputList &ol)
void parseSource(bool sameTu, QStrList &filesInSameTu)
void writeQuickMemberLinks(OutputList &ol, MemberDef *currentMd) const
void startMemberSections()
QCString left(uint len) const
DocRoot * validatingParseDoc(const char *fileName, int startLine, Definition *ctx, MemberDef *md, const char *input, bool indexWords, bool isExample, const char *exampleName, bool singleLine, bool linkFromIndex)
void writeDeclarations(OutputList &ol, ClassDef *cd, NamespaceDef *nd, FileDef *fd, GroupDef *gd, bool showInline=FALSE)
static bool suppressDocWarnings
void writeTagFile(FTextStream &)
virtual bool isReference() const
bool isEnabled(OutputGenerator::OutputType o)
Simplified and optimized version of QTextStream.
DirDef * getDirDef() const
int find(char c, int index=0, bool cs=TRUE) const
NamespaceSDict * getUsedNamespaces() const
virtual QCString trGotoDocumentation()=0
void getAllIncludeFilesRecursively(QStrList &incFiles) const
void endMemberDocumentation(OutputList &ol)
void append(const char *key, const T *d)
static constexpr double mg
void writeIncludeFiles(OutputList &ol)
int findRev(char c, int index=-1, bool cs=TRUE) const
Represents of a member definition list with configurable title.
QCString getFileFilter(const char *name, bool isSourceCode)
void writeDetailedDescription(OutputList &ol, const QCString &title)
void startTextLink(const char *file, const char *anchor)
virtual void linkableSymbol(int, const char *, Definition *, Definition *)
QCString title(SrcLangExt lang) const
void addGroup(const GroupDef *def)
virtual QCString trGotoSourceCode()=0
void addMembersToMemberGroup()
void endMemberDeclarations(OutputList &ol)
bool parseText(const QCString &textStr)
QCString getDefFileExtension() const
static int findMatchingPart(const QCString &path, const QCString dir)
Represents of a member declaration list with configurable title and subtitle.
void writeDocAnchorsToTagFile(FTextStream &)
virtual QCString trDefinedInSourceFile()=0
QList< MemberList > m_memberLists
MemberGroupSDict * m_memberGroupSDict
virtual QCString trInclDepGraph(const char *fName)=0
static bool parseSourcesNeeded
static QCString stripFromPath(const QCString &path, QStrList &l)
QIntDict< Definition > * m_srcDefDict
FileDef * getFileDef() const
void distributeMemberGroupDocumentation()
static ParserManager * parserManager
virtual void writeCodeAnchor(const char *)
void writeDocumentation(OutputList &ol)
QIntDict< MemberDef > * m_srcMemberDict
virtual void setCurrentDoc(Definition *, const char *, bool)
static SearchIndexIntf * searchIndex
void insert(long k, const type *d)
static Directory * findDirNode(Directory *root, const QCString &name)
const QCString & name() const
void writeSummaryLink(const char *file, const char *anchor, const char *title, bool first)
void combineUsingRelations()
void findSectionsInDocumentation()
bool allMembersInSameSection() const
ClassSDict * m_classSDict
void pushGeneratorState()
bool isLinkableInProject() const
void writeNamespaceDeclarations(OutputList &ol, const QCString &title, bool isConstantGroup)
void insertNamespace(NamespaceDef *nd)
virtual void writeCodeLink(const char *, const char *, const char *, const char *, const char *)
SDict< Definition > * m_usingDeclList
QCString convertToHtml(const char *s, bool keepEntities)
QCString getSourceFileBase() const
QCString right(uint len) const
QList< IncludeInfo > * includeFileList() const
static void writeVhdlDeclarations(MemberList *, OutputList &, GroupDef *, ClassDef *, FileDef *, NamespaceDef *)
void inSort(const MemberDef *md)
SrcLangExt getLanguage() const
virtual QCString trAuthor(bool first_capital, bool singular)=0
virtual void endCodeLine()
NamespaceSDict * m_usingDirList
virtual void addWord(const char *word, bool hiPriority)=0
Definition * getSourceDefinition(int lineNr) const
void addUsingDirective(NamespaceDef *nd)
virtual QCString trGeneratedAutomatically(const char *s)=0
static void print(DebugMask mask, int prio, const char *fmt,...)
virtual void writeLineNumber(const char *, const char *, const char *, int)
QCString & prepend(const char *s)
void disable(OutputGenerator::OutputType o)
void makePartOfGroup(GroupDef *gd)
void append(const type *d)
virtual void addWord(const char *, bool)
NamespaceSDict * m_namespaceSDict
void setNeedsSorting(bool b)
A bunch of utility functions.
const char * data() const
void addGroupListToTitle(OutputList &ol, Definition *d)
void addToDeclarationSection()
#define Config_getString(val)
void writeDoc(DocRoot *root, Definition *ctx, MemberDef *md)
void enable(OutputGenerator::OutputType o)
#define Config_getBool(val)
void setReference(const char *r)
ClassDef * getClassDef() const
void setSectionList(Definition *d, MemberList *sl)
QCString briefFile() const
void rename(const QCString &name)
virtual QCString qualifiedName() const
virtual void endFontClass()
void addUsingDeclaration(Definition *def)
void err(const char *fmt,...)
MemberList * getMemberList(MemberListType lt) const
MemberType memberType() const
virtual QCString trMore()=0
QCString absFilePath() const
virtual QCString briefDescription(bool abbreviate=FALSE) const
void startGroupHeader(int extraLevels=0)
QCString mid(uint index, uint len=0xffffffff) const
QCString getOutputFileBase() const
static void writeDirTreeNode(OutputList &ol, DirDef *dd, int level, FTVHelp *ftv, bool addToIndex)
void writeDocumentationPage(OutputList &ol, const char *scopeName, Definition *container)
QList< IncludeInfo > * m_includedByList
void findSectionsInDocumentation()
SDict< Definition > * getUsedClasses() const
The QTextStream class provides basic functions for reading and writing text using a QIODevice...
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const QCString &title)
virtual void startCodeLine(bool)
void writeDeclaration(OutputList &ol, const ClassDef::CompoundType *filter=0, const char *header=0, bool localNames=FALSE)
void insertClass(ClassDef *cd)
void startTitle(OutputList &ol, const char *fileName, Definition *def)
SrcLangExt getLanguageFromFileName(const QCString fileName)
int getStartBodyLine() const
void writeMemberDeclarations(OutputList &ol, MemberListType lt, const QCString &title)
void startTextBlock(bool dense=FALSE)
int portable_pclose(FILE *stream)
void line(double t, double *p, double &x, double &y, double &z)
virtual Kind kind() const =0
void writeAuthorSection(OutputList &ol)
void writeSources(CodeOutputInterface &ol, FileDef *fd)
void endInclDepGraph(const DotInclDepGraph &g)
bool fill(char c, int len=-1)
Base class representing a piece of a documentation page.
virtual void setCurrentDoc(Definition *ctx, const char *anchor, bool isSourceFile)=0
QCString getOutputFileBase() const
static void addDirsAsGroups(Directory *root, GroupDef *parent, int level)
void writeAnchor(const char *fileName, const char *name)
void acquireFileVersion()
QDict< IncludeInfo > * m_includedByDict
void writeMemberGroups(OutputList &ol)
void writeMemberPages(OutputList &ol)
static void mergeFileDef(Directory *root, FileDef *fd)
void addChild(DirEntry *d)
NamespaceDef * getNamespaceDef() const
void addRefItem(const QList< ListItemInfo > *sli, const char *key, const char *prefix, const char *name, const char *title, const char *args, Definition *scope)
void addIncludedByDependency(FileDef *fd, const char *incName, bool local, bool imported)
Translator * theTranslator
void addIncludeDependency(FileDef *fd, const char *incName, bool local, bool imported, bool indirect)
void writeDocumentation(OutputList &ol, Definition *container=0)
void addMemberToList(MemberListType lt, MemberDef *md)
bool needsSorting() const
bool isDocumentationFile() const
static QCString listTypeAsString(MemberListType type)
void endTextBlock(bool paraBreak=FALSE)
void endTitle(OutputList &ol, const char *fileName, const char *name)
void writeDeclarations(OutputList &ol, ClassDef *cd, NamespaceDef *nd, FileDef *fd, GroupDef *gd, const char *title, const char *subtitle, bool showEnumValues=FALSE, bool showInline=FALSE, ClassDef *inheritedFrom=0, MemberListType lt=MemberListType_pubMethods)
QList< IncludeInfo > * m_includeList
void createSubDirs(QDir &d)
bool removeRef(const type *d)
void distributeMemberGroupDocumentation()
QCString includeName() const
void addIncludedUsingDirectives()
static ClangParser * instance()
void writeSourceLink(OutputList &ol)
void docFindSections(const char *input, Definition *d, MemberGroup *mg, const char *fileName)
bool isLinkableInProject() const
QList< DirEntry > & children()
void addSourceRef(int line, Definition *d, MemberDef *md)
void docify(const char *s)
void findSectionsInDocumentation()
T * find(const char *key)
virtual QCString trInclByDepGraph()=0
virtual QCString documentation() const
void writeObjectLink(const char *ref, const char *file, const char *anchor, const char *name)
virtual void writeTooltip(const char *, const DocLinkInfo &, const char *, const char *, const SourceLinkInfo &, const SourceLinkInfo &)
void startProjectNumber()
void setAutoDelete(bool enable)
virtual void parseCode(CodeOutputInterface &codeOutIntf, const char *scopeName, const QCString &input, SrcLangExt lang, bool isExampleBlock, const char *exampleName=0, FileDef *fileDef=0, int startLine=-1, int endLine=-1, bool inlineFragment=FALSE, MemberDef *memberDef=0, bool showLineNumbers=TRUE, Definition *searchCtx=0, bool collectXRefs=TRUE)=0
void writeDeclaration(OutputList &ol, const char *title, bool isConstantGroup=false, bool localName=FALSE)
void addListReferences(Definition *def)
void reParent(Directory *parent)
virtual QCString trSourceFile(QCString &filename)=0
QCString localName() const
const char * qPrint(const char *s)
def parent(G, child, parent_type)
void writeIncludeGraph(OutputList &ol)
void startMemberDocumentation(OutputList &ol)
FileDef(const char *p, const char *n, const char *ref=0, const char *dn=0)
Portable versions of functions that are platform dependent.
type * find(long k) const
QCString title(SrcLangExt lang) const
void combineUsingRelations()
QTextStream & endl(QTextStream &s)
bool isIncluded(const QCString &name) const
QCString fileVersion() const
void warn_uncond(const char *fmt,...)
void addListReferences(Definition *d)
void startMemberDeclarations(OutputList &ol)
virtual void resetCodeParserState()=0