#include <stdio.h>
#include <stdlib.h>
#include <qfile.h>
#include <qfileinfo.h>
#include <qcstring.h>
#include <qstack.h>
#include <qdict.h>
#include <qregexp.h>
#include <ctype.h>
#include "doxygen.h"
#include "debug.h"
#include "util.h"
#include "pagedef.h"
#include "docparser.h"
#include "doctokenizer.h"
#include "cmdmapper.h"
#include "printdocvisitor.h"
#include "message.h"
#include "section.h"
#include "searchindex.h"
#include "language.h"
#include "portable.h"
Go to the source code of this file.
Classes | |
struct | DocParserContext |
Defines | |
#define | DBG(x) do {} while(0) |
#define | INTERNAL_ASSERT(x) do {} while(0) |
Functions | |
DocNode * | validatingParseDoc (const char *fileName, int startLine, Definition *ctx, MemberDef *md, const char *input, bool indexWords, bool isExample, const char *exampleName, bool singleLine, bool linkFromIndex) |
DocNode * | validatingParseText (const char *input) |
void | docFindSections (const char *input, Definition *d, MemberGroup *mg, const char *fileName) |
void | initDocParser () |
void | finializeDocParser () |
#define DBG | ( | x | ) | do {} while(0) |
Definition at line 46 of file docparser.cpp.
Referenced by DocSymbol::decodeSymbol(), DocPara::handleCommand(), DocPara::handleHtmlEndTag(), DocPara::handleHtmlStartTag(), DocPara::handleInclude(), DocPara::handleIncludeOperator(), DocPara::handleRef(), DocRoot::parse(), DocText::parse(), DocSection::parse(), DocPara::parse(), DocParamSect::parse(), DocParamList::parse(), DocSimpleSect::parse(), DocTitle::parse(), DocHtmlList::parse(), DocHtmlListItem::parse(), DocHtmlDescList::parse(), DocHtmlDescData::parse(), DocHtmlDescTitle::parse(), DocHtmlTable::parse(), DocHtmlRow::parse(), DocHtmlCell::parse(), DocHtmlCaption::parse(), DocIndexEntry::parse(), DocInternal::parse(), DocHRef::parse(), DocHtmlHeader::parse(), DocImage::parse(), DocDotFile::parse(), DocLink::parse(), DocRef::parse(), DocInternalRef::parse(), DocSecRefList::parse(), DocSecRefItem::parse(), DocIncOperator::parse(), DocInclude::parse(), DocSimpleSect::parseRcs(), DocParamList::parseXml(), DocSimpleSect::parseXml(), DocHtmlList::parseXml(), DocHtmlListItem::parseXml(), DocHtmlTable::parseXml(), DocHtmlRow::parseXml(), and DocHtmlCell::parseXml().
#define INTERNAL_ASSERT | ( | x | ) | do {} while(0) |
Definition at line 55 of file docparser.cpp.
Referenced by DocPara::handleCommand(), DocSection::parse(), and DocPara::parse().
void docFindSections | ( | const char * | input, | |
Definition * | d, | |||
MemberGroup * | m, | |||
const char * | fileName | |||
) |
Searches for section and anchor commands in the input
Definition at line 6202 of file docparser.cpp.
References doctokenizerYYFindSections().
Referenced by PageDef::findSectionsInDocumentation(), NamespaceDef::findSectionsInDocumentation(), MemberGroup::findSectionsInDocumentation(), MemberDef::findSectionsInDocumentation(), GroupDef::findSectionsInDocumentation(), FileDef::findSectionsInDocumentation(), and ClassDef::findSectionsInDocumentation().
void finializeDocParser | ( | ) |
Cleanup the documentation parser
Definition at line 6222 of file docparser.cpp.
References Doxygen::searchIndex.
Referenced by generateOutput().
void initDocParser | ( | ) |
Initialize the documentation parser
Definition at line 6210 of file docparser.cpp.
References Config_getBool, and Doxygen::searchIndex.
Referenced by generateOutput().
DocNode* validatingParseDoc | ( | const char * | fileName, | |
int | startLine, | |||
Definition * | context, | |||
MemberDef * | md, | |||
const char * | input, | |||
bool | indexWords, | |||
bool | isExample, | |||
const char * | exampleName = 0 , |
|||
bool | singleLine = FALSE , |
|||
bool | linkFromIndex = FALSE | |||
) |
Main entry point for the documentation parser.
fileName | File in which the documentation block is found (or the name of the example file in case isExample is TRUE). | |
startLine | Line at which the documentation block is found. | |
context | Class or namespace to which this block belongs. | |
md | Member definition to which the documentation belongs. Can be 0. | |
input | String representation of the documentation block. | |
indexWords | Indicates whether or not words should be put in the search index. | |
isExample | TRUE if the documentation belongs to an example. | |
exampleName | Base name of the example file (0 if isExample is FALSE). | |
singleLine | Output should be presented on a single line, so without starting a new paragraph at the end. | |
linkFromIndex | TRUE if the documentation is generated from an index page. In this case context is not used to determine the relative path when making a link. |
Definition at line 5979 of file docparser.cpp.
References DocRoot::accept(), MemberDef::anchor, ClassDef::compoundTypeString(), Config_getBool, DefinitionIntf::definitionType(), doctokenizerYYinit(), doctokenizerYYlineno, MemberDef::getOutputFileBase(), Definition::getOutputFileBase(), GroupDef::groupTitle(), Debug::isFlagSet(), Definition::name(), DocRoot::parse(), Debug::PrintTree, QCString, MemberDef::qualifiedName(), Definition::qualifiedName(), relativePathToRoot(), Doxygen::searchIndex, SearchIndex::setCurrentDoc(), substitute(), theTranslator, PageDef::title(), Translator::trGroup(), Translator::trMember(), Translator::trModule(), Translator::trNamespace(), Translator::trPackage(), Translator::trPage(), Translator::trSubprogram(), DefinitionIntf::TypeClass, DefinitionIntf::TypeGroup, DefinitionIntf::TypeNamespace, and DefinitionIntf::TypePage.
Referenced by parseCommentAsText(), and OutputList::parseDoc().
DocNode* validatingParseText | ( | const char * | input | ) |
Main entry point for parsing simple text fragments. These fragments are limited to words, whitespace and symbols.
Definition at line 6150 of file docparser.cpp.
References DocText::accept(), doctokenizerYYinit(), doctokenizerYYlineno, Debug::isFlagSet(), DocText::parse(), and Debug::PrintTree.
Referenced by OutputList::parseText().