Skip to main content

The DocIndexEntry Class Reference

Node representing an entry in the index. More...

Declaration

class DocIndexEntry { ... }

Included Headers

#include <src/docnode.h>

Base class

classDocNode

Abstract node interface with type information. More...

Public Constructors Index

DocIndexEntry (DocParser *parser, DocNodeVariant *parent, const Definition *scope, const MemberDef *md)

Public Member Functions Index

Tokenparse ()
const Definition *scope () const
const MemberDef *member () const
QCStringentry () const

Private Member Attributes Index

QCStringm_entry
const Definition *m_scope = nullptr
const MemberDef *m_member = nullptr

Description

Node representing an entry in the index.

Definition at line 551 of file docnode.h.

Public Constructors

DocIndexEntry()

DocIndexEntry::DocIndexEntry (DocParser * parser, DocNodeVariant * parent, const Definition * scope, const MemberDef * md)
inline

Public Member Functions

entry()

QCString DocIndexEntry::entry ()
inline

member()

const MemberDef * DocIndexEntry::member ()
inline

Definition at line 558 of file docnode.h.

558 const MemberDef *member() const { return m_member; }

Reference m_member.

Referenced by HtmlDocVisitor::operator().

parse()

Token DocIndexEntry::parse ()

Declaration at line 556 of file docnode.h, definition at line 1599 of file docnode.cpp.

1600{
1601 AUTO_TRACE();
1602 Token retval(TokenRetval::RetVal_OK);
1603 auto ns = AutoNodeStack(parser(),thisVariant());
1604 Token tok=parser()->tokenizer.lex();
1605 if (!tok.is(TokenRetval::TK_WHITESPACE))
1606 {
1607 warn_doc_error(parser()->context.fileName,parser()->tokenizer.getLineNr(),"expected whitespace after \\addindex command");
1608 goto endindexentry;
1609 }
1611 m_entry="";
1612 tok = parser()->tokenizer.lex();
1613 while (!tok.is_any_of(TokenRetval::TK_NONE, TokenRetval::TK_EOF))
1614 {
1615 switch (tok.value())
1616 {
1617 case TokenRetval::TK_WHITESPACE:
1618 m_entry+=" ";
1619 break;
1620 case TokenRetval::TK_WORD:
1621 case TokenRetval::TK_LNKWORD:
1623 break;
1624 case TokenRetval::TK_SYMBOL:
1625 {
1626 HtmlEntityMapper::SymType s = DocSymbol::decodeSymbol(parser()->context.token->name);
1627 switch (s)
1628 {
1629 case HtmlEntityMapper::Sym_BSlash: m_entry+='\\'; break;
1630 case HtmlEntityMapper::Sym_At: m_entry+='@'; break;
1631 case HtmlEntityMapper::Sym_Less: m_entry+='<'; break;
1632 case HtmlEntityMapper::Sym_Greater: m_entry+='>'; break;
1633 case HtmlEntityMapper::Sym_Amp: m_entry+='&'; break;
1634 case HtmlEntityMapper::Sym_Dollar: m_entry+='$'; break;
1635 case HtmlEntityMapper::Sym_Hash: m_entry+='#'; break;
1636 case HtmlEntityMapper::Sym_Percent: m_entry+='%'; break;
1637 case HtmlEntityMapper::Sym_apos: m_entry+='\''; break;
1638 case HtmlEntityMapper::Sym_Quot: m_entry+='"'; break;
1639 case HtmlEntityMapper::Sym_lsquo: m_entry+='`'; break;
1640 case HtmlEntityMapper::Sym_rsquo: m_entry+='\''; break;
1641 case HtmlEntityMapper::Sym_ldquo: m_entry+="``"; break;
1642 case HtmlEntityMapper::Sym_rdquo: m_entry+="''"; break;
1643 case HtmlEntityMapper::Sym_ndash: m_entry+="--"; break;
1644 case HtmlEntityMapper::Sym_mdash: m_entry+="---"; break;
1645 default:
1646 warn_doc_error(parser()->context.fileName,parser()->tokenizer.getLineNr(),"Unexpected symbol '{}' found as argument of \\addindex",parser()->context.token->name);
1647 break;
1648 }
1649 }
1650 break;
1651 case TokenRetval::TK_COMMAND_AT:
1652 // fall through
1653 case TokenRetval::TK_COMMAND_BS:
1654 switch (Mappers::cmdMapper->map(parser()->context.token->name))
1655 {
1656 case CommandType::CMD_BSLASH: m_entry+='\\'; break;
1657 case CommandType::CMD_AT: m_entry+='@'; break;
1658 case CommandType::CMD_LESS: m_entry+='<'; break;
1659 case CommandType::CMD_GREATER: m_entry+='>'; break;
1660 case CommandType::CMD_AMP: m_entry+='&'; break;
1661 case CommandType::CMD_DOLLAR: m_entry+='$'; break;
1662 case CommandType::CMD_HASH: m_entry+='#'; break;
1663 case CommandType::CMD_DCOLON: m_entry+="::"; break;
1664 case CommandType::CMD_PERCENT: m_entry+='%'; break;
1665 case CommandType::CMD_NDASH: m_entry+="--"; break;
1666 case CommandType::CMD_MDASH: m_entry+="---"; break;
1667 case CommandType::CMD_QUOTE: m_entry+='"'; break;
1668 case CommandType::CMD_PUNT: m_entry+='.'; break;
1669 case CommandType::CMD_PLUS: m_entry+='+'; break;
1670 case CommandType::CMD_MINUS: m_entry+='-'; break;
1671 case CommandType::CMD_EQUAL: m_entry+='='; break;
1672 case CommandType::CMD_EXCLAMATION: m_entry+='!'; break;
1673 case CommandType::CMD_QUESTION: m_entry+='?'; break;
1674 default:
1675 warn_doc_error(parser()->context.fileName,parser()->tokenizer.getLineNr(),"Unexpected command {} found as argument of \\addindex",
1676 parser()->context.token->name);
1677 break;
1678 }
1679 break;
1680 default:
1681 warn_doc_error(parser()->context.fileName,parser()->tokenizer.getLineNr(),"Unexpected token {}",
1682 tok.to_string());
1683 break;
1684 }
1685 tok = parser()->tokenizer.lex();
1686 }
1688 m_entry = m_entry.stripWhiteSpace();
1689endindexentry:
1690 AUTO_TRACE_EXIT("retval={}",retval.to_string());
1691 return retval;
1692}

References AUTO_TRACE, AUTO_TRACE_EXIT, CMD_AMP, CMD_AT, CMD_BSLASH, CMD_DCOLON, CMD_DOLLAR, CMD_EQUAL, CMD_EXCLAMATION, CMD_GREATER, CMD_HASH, CMD_LESS, CMD_MDASH, CMD_MINUS, CMD_NDASH, CMD_PERCENT, CMD_PLUS, CMD_PUNT, CMD_QUESTION, CMD_QUOTE, Mappers::cmdMapper, DocParser::context, DocSymbol::decodeSymbol, Token::is, Token::is_any_of, DocTokenizer::lex, m_entry, TokenInfo::name, DocNode::parser, DocTokenizer::setStatePara, DocTokenizer::setStateTitle, HtmlEntityMapper::Sym_Amp, HtmlEntityMapper::Sym_apos, HtmlEntityMapper::Sym_At, HtmlEntityMapper::Sym_BSlash, HtmlEntityMapper::Sym_Dollar, HtmlEntityMapper::Sym_Greater, HtmlEntityMapper::Sym_Hash, HtmlEntityMapper::Sym_ldquo, HtmlEntityMapper::Sym_Less, HtmlEntityMapper::Sym_lsquo, HtmlEntityMapper::Sym_mdash, HtmlEntityMapper::Sym_ndash, HtmlEntityMapper::Sym_Percent, HtmlEntityMapper::Sym_Quot, HtmlEntityMapper::Sym_rdquo, HtmlEntityMapper::Sym_rsquo, DocNode::thisVariant, Token::to_string, DocParserContext::token, DocParser::tokenizer, Token::value and warn_doc_error.

scope()

const Definition * DocIndexEntry::scope ()
inline

Definition at line 557 of file docnode.h.

557 const Definition *scope() const { return m_scope; }

Reference m_scope.

Referenced by DocIndexEntry and HtmlDocVisitor::operator().

Private Member Attributes

m_entry

QCString DocIndexEntry::m_entry

Definition at line 562 of file docnode.h.

Referenced by entry and parse.

m_member

const MemberDef* DocIndexEntry::m_member = nullptr

Definition at line 564 of file docnode.h.

564 const MemberDef *m_member = nullptr;

Referenced by DocIndexEntry and member.

m_scope

const Definition* DocIndexEntry::m_scope = nullptr

Definition at line 563 of file docnode.h.

563 const Definition *m_scope = nullptr;

Referenced by DocIndexEntry and scope.


The documentation for this class was generated from the following files:


Generated via doxygen2docusaurus by Doxygen 1.14.0.