41template<
typename T,
typename Container = std::deque<T>>
44 using std::stack<T, Container>::c;
49 auto begin() {
return std::begin(c); }
50 auto end() {
return std::end(c); }
52 auto begin()
const {
return std::begin(c); }
53 auto end()
const {
return std::end(c); }
61 const Definition *
scope =
nullptr;
104 const QCString &doc);
113 const Definition **pDef);
115 DocNodeList &children,
bool
118 DocNodeList &children,
const QCString &txt);
120 DocNodeList &children, QCString &width,QCString &height);
122 const QCString &cmdName);
124 const QCString &tagName,
const HtmlAttribList *attribs);
126 const QCString &tagName);
155 if (!
m_parser->context.nodeStack.empty())
173 return std::visit([](
auto &&x)->
decltype(
auto) {
return x.isPreformatted(); }, *n);
192 if (std::holds_alternative<DocHtmlListItem>(*n))
return TRUE;
203 if (std::holds_alternative<DocHtmlBlockQuote>(*n))
return TRUE;
217 if (std::holds_alternative<DocHtmlList>(*n) &&
234 if (std::holds_alternative<DocHtmlList>(*n) &&
250 if (std::holds_alternative<DocHtmlTable>(*n))
return TRUE;
262 if (std::holds_alternative<DocHtmlDetails>(*n))
return TRUE;
274 if (std::holds_alternative<DocHtmlDescList>(*n))
return TRUE;
const DocNodeVariant * m_node
AutoNodeStack(DocParser *parser, DocNodeVariant *node)
bool defaultHandleToken(DocNodeVariant *parent, Token tok, DocNodeList &children, bool handleWord=TRUE)
std::stack< DocParserContext > contextStack
void handleLinkedWord(DocNodeVariant *parent, DocNodeList &children, bool ignoreAutoLinkFlag=FALSE)
void handleInternalRef(DocNodeVariant *parent, DocNodeList &children)
void handleParameterType(DocNodeVariant *parent, DocNodeList &children, const QCString ¶mTypes)
QCString findAndCopyImage(const QCString &fileName, DocImage::Type type, bool doWarn=true)
QCString processCopyDoc(const char *data, size_t &len)
void readTextFileByName(const QCString &file, QCString &text)
Token handleAHref(DocNodeVariant *parent, DocNodeList &children, const HtmlAttribList &tagHtmlAttribs)
Token internalValidatingParseDoc(DocNodeVariant *parent, DocNodeList &children, const QCString &doc)
void handleInitialStyleCommands(DocNodeVariant *parent, DocNodeList &children)
void handleStyleLeave(DocNodeVariant *parent, DocNodeList &children, DocStyleChange::Style s, const QCString &tagName)
void handlePendingStyleCommands(DocNodeVariant *parent, DocNodeList &children)
void checkUnOrMultipleDocumentedParams()
bool findDocsForMemberOrCompound(const QCString &commandName, QCString *pDoc, QCString *pBrief, const Definition **pDef)
void handleImage(DocNodeVariant *parent, DocNodeList &children)
void handleStyleEnter(DocNodeVariant *parent, DocNodeList &children, DocStyleChange::Style s, const QCString &tagName, const HtmlAttribList *attribs)
void handlePrefix(DocNodeVariant *parent, DocNodeList &children)
Token handleStyleArgument(DocNodeVariant *parent, DocNodeList &children, const QCString &cmdName)
void handleAnchor(DocNodeVariant *parent, DocNodeList &children)
void handleImg(DocNodeVariant *parent, DocNodeList &children, const HtmlAttribList &tagHtmlAttribs)
void defaultHandleTitleAndSize(const CommandType cmd, DocNodeVariant *parent, DocNodeList &children, QCString &width, QCString &height)
void handleUnclosedStyleCommands()
void errorHandleDefaultToken(DocNodeVariant *parent, Token tok, DocNodeList &children, const QCString &txt)
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
std::multiset< std::string > StringMultiSet
std::variant< DocWord, DocLinkedWord, DocURL, DocLineBreak, DocHorRuler, DocAnchor, DocCite, DocStyleChange, DocSymbol, DocEmoji, DocWhiteSpace, DocSeparator, DocVerbatim, DocInclude, DocIncOperator, DocFormula, DocIndexEntry, DocAutoList, DocAutoListItem, DocTitle, DocXRefItem, DocImage, DocDotFile, DocMscFile, DocDiaFile, DocVhdlFlow, DocLink, DocRef, DocInternalRef, DocHRef, DocHtmlHeader, DocHtmlDescTitle, DocHtmlDescList, DocSection, DocSecRefItem, DocSecRefList, DocInternal, DocParBlock, DocSimpleList, DocHtmlList, DocSimpleSect, DocSimpleSectSep, DocParamSect, DocPara, DocParamList, DocSimpleListItem, DocHtmlListItem, DocHtmlDescData, DocHtmlCell, DocHtmlCaption, DocHtmlRow, DocHtmlTable, DocHtmlBlockQuote, DocText, DocRoot, DocHtmlDetails, DocHtmlSummary, DocPlantUmlFile > DocNodeVariant
constexpr DocNodeVariant * parent(DocNodeVariant *n)
returns the parent node of a given node n or nullptr if the node has no parent.
std::stack< DocNodeVariant * > DocNodeStack
bool isPreformatted(const DocNodeVariant *n)
bool insideUL(const DocNodeVariant *n)
bool insideTable(const DocNodeVariant *n)
std::vector< const Definition * > DefinitionStack
IterableStack< const DocNodeVariant * > DocStyleChangeStack
bool insidePRE(const DocNodeVariant *n)
bool insideLI(const DocNodeVariant *n)
bool insideDL(const DocNodeVariant *n)
bool insideBlockQuote(const DocNodeVariant *n)
bool insideDetails(const DocNodeVariant *n)
bool insideOL(const DocNodeVariant *n)
Web server based search engine.
Parser's context to store all global variables.
StringMultiSet retvalsFound
bool includeFileShowLineNo
DocStyleChangeStack styleStack
StringMultiSet paramsFound
DefinitionStack copyStack
DocStyleChangeStack initialStyleStack
const MemberDef * memberDef
SrcLangExt
Language as given by extension.