Doxygen
DocSecRefList类 参考

Node representing a list of section references 更多...

#include <docparser.h>

+ 类 DocSecRefList 继承关系图:
+ DocSecRefList 的协作图:

Public 成员函数

 DocSecRefList (DocParser &parser, DocNode *parent)
 
void parse ()
 
Kind kind () const override
 
- Public 成员函数 继承自 CompAccept< DocSecRefList >
 CompAccept (DocParser &parser)
 
void accept (DocVisitor *v) override
 
const DocNodeListchildren () const
 
DocNodeListchildren ()
 
- Public 成员函数 继承自 DocNode
 DocNode (DocParser &parser)
 
virtual ~DocNode ()
 
DocNodeparent () const
 
void setParent (DocNode *parent)
 
bool isPreformatted () const
 

额外继承的成员函数

- Public 类型 继承自 DocNode
enum  Kind {
  Kind_Root = 0, Kind_Word = 1, Kind_WhiteSpace = 2, Kind_Para = 3,
  Kind_AutoList = 4, Kind_AutoListItem = 5, Kind_Symbol = 6, Kind_URL = 7,
  Kind_StyleChange = 8, Kind_SimpleSect = 9, Kind_Title = 10, Kind_SimpleList = 11,
  Kind_SimpleListItem = 12, Kind_Section = 13, Kind_Verbatim = 14, Kind_XRefItem = 15,
  Kind_HtmlList = 16, Kind_HtmlListItem = 17, Kind_HtmlDescList = 18, Kind_HtmlDescData = 19,
  Kind_HtmlDescTitle = 20, Kind_HtmlTable = 21, Kind_HtmlRow = 22, Kind_HtmlCell = 23,
  Kind_HtmlCaption = 24, Kind_LineBreak = 25, Kind_HorRuler = 26, Kind_Anchor = 27,
  Kind_IndexEntry = 28, Kind_Internal = 29, Kind_HRef = 30, Kind_Include = 31,
  Kind_IncOperator = 32, Kind_HtmlHeader = 33, Kind_Image = 34, Kind_DotFile = 35,
  Kind_Link = 36, Kind_Ref = 37, Kind_Formula = 38, Kind_SecRefItem = 39,
  Kind_SecRefList = 40, Kind_SimpleSectSep = 41, Kind_LinkedWord = 42, Kind_ParamSect = 43,
  Kind_ParamList = 44, Kind_InternalRef = 45, Kind_Copy = 46, Kind_Text = 47,
  Kind_MscFile = 48, Kind_HtmlBlockQuote = 49, Kind_VhdlFlow = 50, Kind_ParBlock = 51,
  Kind_DiaFile = 52, Kind_Emoji = 53, Kind_Sep = 54
}
 
- Protected 类型 继承自 DocNode
enum  RefType { Unknown, Anchor, Section, Table }
 
- Protected 成员函数 继承自 DocNode
void setInsidePreformatted (bool p)
 
- Protected 属性 继承自 CompAccept< DocSecRefList >
DocNodeList m_children
 
- Protected 属性 继承自 DocNode
DocNodem_parent = 0
 
DocParserm_parser
 

详细描述

Node representing a list of section references

在文件 docparser.h1048 行定义.

构造及析构函数说明

◆ DocSecRefList()

DocSecRefList::DocSecRefList ( DocParser parser,
DocNode parent 
)
inline

在文件 docparser.h1051 行定义.

1051 : CompAccept<DocSecRefList>(parser) { m_parent = parent; }

引用了 DocNode::m_parent , 以及 DocNode::parent().

成员函数说明

◆ kind()

Kind DocSecRefList::kind ( ) const
inlineoverridevirtual

Returns the kind of node. Provides runtime type information

实现了 DocNode.

在文件 docparser.h1053 行定义.

1053 { return Kind_SecRefList; }

引用了 DocNode::Kind_SecRefList.

◆ parse()

void DocSecRefList::parse ( )

在文件 docparser.cpp2286 行定义.

2287 {
2288  DBG(("DocSecRefList::parse() start\n"));
2289  auto ns = AutoNodeStack(m_parser,this);
2290 
2291  int tok=m_parser.tokenizer.lex();
2292  // skip white space
2293  while (tok==TK_WHITESPACE || tok==TK_NEWPARA) tok=m_parser.tokenizer.lex();
2294  // handle items
2295  while (tok)
2296  {
2297  if (tok==TK_COMMAND_AT || tok == TK_COMMAND_BS)
2298  {
2299  const char *cmd_start = (tok==TK_COMMAND_AT ? "@" : "\\");
2300  switch (Mappers::cmdMapper->map(m_parser.context.token->name))
2301  {
2302  case CMD_SECREFITEM:
2303  {
2304  tok=m_parser.tokenizer.lex();
2305  if (tok!=TK_WHITESPACE)
2306  {
2307  warn_doc_error(m_parser.context.fileName,m_parser.tokenizer.getLineNr(),"expected whitespace after \\refitem command");
2308  break;
2309  }
2310  tok=m_parser.tokenizer.lex();
2311  if (tok!=TK_WORD && tok!=TK_LNKWORD)
2312  {
2313  warn_doc_error(m_parser.context.fileName,m_parser.tokenizer.getLineNr(),"unexpected token %s as the argument of \\refitem",
2315  break;
2316  }
2317 
2319  m_children.push_back(std::unique_ptr<DocSecRefItem>(item));
2320  item->parse();
2321  }
2322  break;
2323  case CMD_ENDSECREFLIST:
2324  goto endsecreflist;
2325  default:
2326  warn_doc_error(m_parser.context.fileName,m_parser.tokenizer.getLineNr(),"Illegal command %s as part of a \\secreflist",
2327  qPrint(cmd_start + m_parser.context.token->name));
2328  goto endsecreflist;
2329  }
2330  }
2331  else if (tok==TK_WHITESPACE)
2332  {
2333  // ignore whitespace
2334  }
2335  else
2336  {
2337  warn_doc_error(m_parser.context.fileName,m_parser.tokenizer.getLineNr(),"Unexpected token %s inside section reference list",
2339  goto endsecreflist;
2340  }
2341  tok=m_parser.tokenizer.lex();
2342  }
2343 
2344 endsecreflist:
2345  DBG(("DocSecRefList::parse() end\n"));
2346 }

引用了 CMD_ENDSECREFLIST, CMD_SECREFITEM, Mappers::cmdMapper, DocParser::context, DBG, DocParserContext::fileName, DocTokenizer::getLineNr(), DocTokenizer::lex(), CompAccept< DocSecRefList >::m_children, DocNode::m_parser, TokenInfo::name, DocSecRefItem::parse(), qPrint(), TK_COMMAND_AT, TK_COMMAND_BS, TK_LNKWORD, TK_NEWPARA, TK_WHITESPACE, TK_WORD, DocParserContext::token, DocParser::tokenizer, DocTokenizer::tokToString() , 以及 warn_doc_error().

被这些函数引用 DocPara::handleCommand().


该类的文档由以下文件生成:
DocParserContext::token
TokenInfo * token
Definition: docparser.cpp:129
DocParser::context
DocParserContext context
Definition: docparser.cpp:175
DocTokenizer::tokToString
static const char * tokToString(int token)
TK_WORD
@ TK_WORD
Definition: doctokenizer.h:46
CompAccept< DocSecRefList >
DocNode::Kind_SecRefList
@ Kind_SecRefList
Definition: docparser.h:140
TokenInfo::name
QCString name
Definition: doctokenizer.h:74
DocParser::tokenizer
DocTokenizer tokenizer
Definition: docparser.cpp:176
DocSecRefItem
Node representing a reference to a section
Definition: docparser.h:1023
warn_doc_error
void warn_doc_error(const QCString &file, int line, const char *fmt,...)
Definition: message.cpp:186
TK_WHITESPACE
@ TK_WHITESPACE
Definition: doctokenizer.h:48
CMD_ENDSECREFLIST
@ CMD_ENDSECREFLIST
Definition: cmdmapper.h:50
TK_COMMAND_AT
@ TK_COMMAND_AT
Definition: doctokenizer.h:51
DocParserContext::fileName
QCString fileName
Definition: docparser.cpp:110
DocNode::m_parser
DocParser & m_parser
Definition: docparser.h:184
DocTokenizer::getLineNr
int getLineNr(void)
TK_LNKWORD
@ TK_LNKWORD
Definition: doctokenizer.h:47
DocSecRefItem::parse
void parse()
Definition: docparser.cpp:2212
CMD_SECREFITEM
@ CMD_SECREFITEM
Definition: cmdmapper.h:77
qPrint
const char * qPrint(const char *s)
Definition: qcstring.h:589
Mappers::cmdMapper
static Mapper * cmdMapper
Definition: cmdmapper.h:234
AutoNodeStack
Definition: docparser.cpp:186
DocTokenizer::lex
int lex()
TK_NEWPARA
@ TK_NEWPARA
Definition: doctokenizer.h:54
DocNode::parent
DocNode * parent() const
Definition: docparser.h:166
DBG
#define DBG(x)
Definition: docparser.cpp:58
CompAccept< DocSecRefList >::m_children
DocNodeList m_children
Definition: docparser.h:211
TK_COMMAND_BS
@ TK_COMMAND_BS
Definition: doctokenizer.h:57
DocNode::m_parent
DocNode * m_parent
Definition: docparser.h:182