Doxygen
|
#include <stdio.h>
#include <stdlib.h>
#include <cassert>
#include <ctype.h>
#include "qcstring.h"
#include "regex.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"
#include "cite.h"
#include "arguments.h"
#include "vhdldocgen.h"
#include "groupdef.h"
#include "classlist.h"
#include "filedef.h"
#include "memberdef.h"
#include "namespacedef.h"
#include "reflist.h"
#include "formula.h"
#include "config.h"
#include "growbuf.h"
#include "markdown.h"
#include "htmlentity.h"
#include "emoji.h"
#include "fileinfo.h"
#include "dir.h"
类 | |
struct | DocParserContext |
Parser's context to store all global variables. 更多... | |
class | DocParser |
class | AutoNodeStack |
struct | ActiveRowSpan |
Helper class to compute the grid for an HTML style table 更多... | |
宏定义 | |
#define | TK_COMMAND_CHAR(token) ((token)==TK_COMMAND_AT ? "@" : "\\") |
#define | DBG(x) do {} while(0) |
#define | INTERNAL_ASSERT(x) do {} while(0) |
#define | CHECK_FOR_COMMAND(str, action) |
类型定义 | |
using | DefinitionStack = std::vector< const Definition * > |
using | DocNodeStack = std::stack< const DocNode * > |
using | DocStyleChangeStack = std::stack< const DocStyleChange * > |
typedef std::vector< ActiveRowSpan > | RowSpanList |
List of ActiveRowSpan classes. 更多... | |
函数 | |
std::unique_ptr< IDocParser > | createDocParser () |
static void | unescapeCRef (QCString &s) |
static QCString | stripKnownExtensions (const QCString &text) |
static bool | insidePRE (DocNode *n) |
static bool | insideLI (DocNode *n) |
static bool | insideUL (DocNode *n) |
static bool | insideOL (DocNode *n) |
static bool | insideTable (DocNode *n) |
static void | flattenParagraphs (DocNode *root, DocNodeList &children) |
static bool | findAttribute (const HtmlAttribList &tagHtmlAttribs, const char *attrName, QCString *result) |
static QCString | extractCopyDocId (const char *data, uint &j, uint len) |
static uint | isCopyBriefOrDetailsCmd (const char *data, uint i, uint len, bool &brief) |
static uint | isVerbatimSection (const char *data, uint i, uint len, QCString &endMarker) |
static uint | skipToEndMarker (const char *data, uint i, uint len, const QCString &endMarker) |
DocRoot * | validatingParseDoc (IDocParser &parserIntf, const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &input, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport) |
DocText * | validatingParseText (IDocParser &parserIntf, const QCString &input) |
DocRef * | createRef (IDocParser &parserIntf, const QCString &target, const QCString &context) |
void | docFindSections (const QCString &input, const Definition *d, const QCString &fileName) |
变量 | |
static const char * | g_sectionLevelToName [] |
static const std::set< std::string > | g_plantumlEngine |
#define CHECK_FOR_COMMAND | ( | str, | |
action | |||
) |
在文件 docparser.cpp 第 7355 行定义.
#define DBG | ( | x | ) | do {} while(0) |
在文件 docparser.cpp 第 58 行定义.
#define INTERNAL_ASSERT | ( | x | ) | do {} while(0) |
在文件 docparser.cpp 第 67 行定义.
#define TK_COMMAND_CHAR | ( | token | ) | ((token)==TK_COMMAND_AT ? "@" : "\\") |
在文件 docparser.cpp 第 55 行定义.
using DefinitionStack = std::vector<const Definition *> |
在文件 docparser.cpp 第 93 行定义.
using DocNodeStack = std::stack<const DocNode *> |
在文件 docparser.cpp 第 94 行定义.
using DocStyleChangeStack = std::stack<const DocStyleChange *> |
在文件 docparser.cpp 第 95 行定义.
typedef std::vector<ActiveRowSpan> RowSpanList |
List of ActiveRowSpan classes.
在文件 docparser.cpp 第 3671 行定义.
std::unique_ptr<IDocParser> createDocParser | ( | ) |
在文件 docparser.cpp 第 179 行定义.
被这些函数引用 addPerlModDocBlock(), convertMapFile(), RTFGenerator::endIndexSection(), generateBriefDoc(), OutputList::generateDoc(), parseCommentAsText(), parseDoc(), OutputList::parseText(), replaceRef(), ConceptDefImpl::writeBriefDescription(), DirDefImpl::writeBriefDescription(), NamespaceDefImpl::writeBriefDescription(), GroupDefImpl::writeBriefDescription(), FileDefImpl::writeBriefDescription(), MemberDefImpl::writeDeclaration(), ConceptDefImpl::writeDeclarationLink(), ClassDefImpl::writeDeclarationLink(), MemberList::writePlainDeclarations() , 以及 writeXMLDocBlock().
DocRef* createRef | ( | IDocParser & | parserIntf, |
const QCString & | target, | ||
const QCString & | context | ||
) |
void docFindSections | ( | const QCString & | input, |
const Definition * | d, | ||
const QCString & | fileName | ||
) |
Searches for section and anchor commands in the input
在文件 docparser.cpp 第 7681 行定义.
引用了 DocTokenizer::findSections() , 以及 DocParser::tokenizer.
被这些函数引用 PageDefImpl::findSectionsInDocumentation(), MemberGroup::findSectionsInDocumentation(), ConceptDefImpl::findSectionsInDocumentation(), NamespaceDefImpl::findSectionsInDocumentation(), GroupDefImpl::findSectionsInDocumentation(), FileDefImpl::findSectionsInDocumentation(), ClassDefImpl::findSectionsInDocumentation() , 以及 MemberDefImpl::findSectionsInDocumentation().
|
static |
|
static |
在文件 docparser.cpp 第 2477 行定义.
引用了 CompAccept< T >::children(), DocNode::Kind_Para , 以及 DocNode::setParent().
被这些函数引用 DocRef::parse().
|
static |
Returns TRUE iff node n is a child of a html list item node
在文件 docparser.cpp 第 571 行定义.
引用了 FALSE, DocNode::kind(), DocNode::Kind_HtmlListItem, DocNode::parent() , 以及 TRUE.
被这些函数引用 DocPara::handleHtmlEndTag() , 以及 DocParser::handleStyleArgument().
|
static |
Returns TRUE iff node n is a child of a ordered html list node
在文件 docparser.cpp 第 598 行定义.
引用了 FALSE, DocNode::kind(), DocNode::Kind_HtmlList, DocHtmlList::Ordered, DocNode::parent() , 以及 TRUE.
被这些函数引用 DocPara::handleHtmlEndTag() , 以及 DocPara::handleHtmlStartTag().
|
static |
Returns TRUE iff node n is a child of a preformatted node
在文件 docparser.cpp 第 558 行定义.
引用了 FALSE, DocNode::isPreformatted(), DocNode::parent() , 以及 TRUE.
被这些函数引用 DocParser::defaultHandleToken() , 以及 DocPara::parse().
|
static |
在文件 docparser.cpp 第 611 行定义.
引用了 FALSE, DocNode::kind(), DocNode::Kind_HtmlTable, DocNode::parent() , 以及 TRUE.
被这些函数引用 filterLatexString() , 以及 DocPara::handleHtmlStartTag().
|
static |
Returns TRUE iff node n is a child of a unordered html list node
在文件 docparser.cpp 第 584 行定义.
引用了 FALSE, DocNode::kind(), DocNode::Kind_HtmlList, DocNode::parent(), TRUE , 以及 DocHtmlList::Unordered.
被这些函数引用 DocPara::handleHtmlEndTag() , 以及 DocPara::handleHtmlStartTag().
在文件 docparser.cpp 第 7359 行定义.
引用了 CHECK_FOR_COMMAND, FALSE , 以及 TRUE.
被这些函数引用 DocParser::processCopyDoc().
|
static |
在文件 docparser.cpp 第 7391 行定义.
引用了 QCString::data(), QCString::length() , 以及 qstrncmp().
被这些函数引用 DocParser::processCopyDoc().
Strips known html and tex extensions from text.
在文件 docparser.cpp 第 539 行定义.
引用了 Doxygen::htmlFileExtension, QCString::left(), QCString::length() , 以及 QCString::right().
被这些函数引用 DocLink::DocLink(), DocRef::DocRef() , 以及 DocSecRefItem::parse().
|
static |
在文件 docparser.cpp 第 241 行定义.
引用了 QCString::data() , 以及 substitute().
被这些函数引用 DocPara::handleHtmlStartTag().
DocRoot* validatingParseDoc | ( | IDocParser & | parser, |
const QCString & | fileName, | ||
int | startLine, | ||
const Definition * | context, | ||
const MemberDef * | md, | ||
const QCString & | input, | ||
bool | indexWords, | ||
bool | isExample, | ||
const QCString & | exampleName, | ||
bool | singleLine, | ||
bool | linkFromIndex, | ||
bool | markdownSupport | ||
) |
Main entry point for the documentation parser.
parser | The parser object created via createDocParser() |
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. |
markdownSupport | TRUE if the input needs to take markdown markup into account. |
在文件 docparser.cpp 第 7495 行定义.
引用了 CompAccept< T >::accept(), MemberDef::anchor(), Definition::anchor(), QCString::at(), DocParser::checkUnOrMultipleDocumentedParams(), DocParserContext::context, DocParser::context, QCString::data(), Definition::definitionType(), MemberDef::detectUndocumentedParams(), DocParserContext::exampleName, FALSE, DocParserContext::fileName, MemberDef::getOutputFileBase(), Definition::getOutputFileBase(), Doxygen::globalScope, DocParserContext::hasParamCommand, DocParserContext::hasReturnCommand, DocParserContext::includeFileLength, DocParserContext::includeFileOffset, DocParserContext::includeFileText, DocTokenizer::init(), DocParserContext::initialStyleStack, DocParserContext::inSeeBlock, DocParserContext::insideHtmlLink, QCString::isEmpty(), DocParserContext::isExample, Debug::isFlagSet(), QCString::length(), DocParserContext::markdownSupport, DocParserContext::memberDef, Definition::name(), DocParserContext::nodeStack, DocParserContext::paramsFound, DocRoot::parse(), DocParser::popContext(), Debug::PrintTree, DocParser::processCopyDoc(), DocParser::pushContext(), relativePathToRoot(), DocParserContext::relPath, DocParserContext::retvalsFound, DocParserContext::scope, Doxygen::searchIndex, DocParserContext::searchUrl, SearchIndexIntf::setCurrentDoc(), DocTokenizer::setLineNr(), DocParserContext::styleStack, toGroupDef(), DocParser::tokenizer, toPageDef(), Definition::TypeClass, Definition::TypeGroup, Definition::TypeNamespace, Definition::TypePage , 以及 DocParserContext::xmlComment.
被这些函数引用 addPerlModDocBlock(), generateBriefDoc(), OutputList::generateDoc(), parseCommentAsText(), parseDoc(), ConceptDefImpl::writeBriefDescription(), DirDefImpl::writeBriefDescription(), NamespaceDefImpl::writeBriefDescription(), GroupDefImpl::writeBriefDescription(), FileDefImpl::writeBriefDescription(), MemberDefImpl::writeDeclaration(), ConceptDefImpl::writeDeclarationLink(), ClassDefImpl::writeDeclarationLink(), MemberList::writePlainDeclarations() , 以及 writeXMLDocBlock().
DocText* validatingParseText | ( | IDocParser & | parser, |
const QCString & | input | ||
) |
Main entry point for parsing simple text fragments. These fragments are limited to words, whitespace and symbols.
在文件 docparser.cpp 第 7621 行定义.
引用了 CompAccept< T >::accept(), Config_getBool, DocParserContext::context, DocParser::context, QCString::data(), DocParserContext::exampleName, FALSE, DocParserContext::fileName, DocParserContext::hasParamCommand, DocParserContext::hasReturnCommand, DocParserContext::includeFileLength, DocParserContext::includeFileOffset, DocParserContext::includeFileText, DocTokenizer::init(), DocParserContext::initialStyleStack, DocParserContext::inSeeBlock, DocParserContext::insideHtmlLink, QCString::isEmpty(), DocParserContext::isExample, Debug::isFlagSet(), DocParserContext::memberDef, DocParserContext::nodeStack, DocParserContext::paramsFound, DocText::parse(), DocParser::popContext(), Debug::PrintTree, DocParser::pushContext(), DocParserContext::relPath, DocParserContext::retvalsFound, DocParserContext::searchUrl, DocTokenizer::setLineNr(), DocParserContext::styleStack, DocParser::tokenizer , 以及 DocParserContext::xmlComment.
被这些函数引用 RTFGenerator::endIndexSection() , 以及 OutputList::parseText().
|
static |
在文件 docparser.cpp 第 82 行定义.
被这些函数引用 DocPara::handleCommand().
|
static |
在文件 docparser.cpp 第 72 行定义.
被这些函数引用 DocSection::parse().