Doxygen
Loading...
Searching...
No Matches
DocAutoList Class Reference

Node representing an auto List. More...

#include <src/docnode.h>

Inheritance diagram for DocAutoList:
Collaboration diagram for DocAutoList:

Public Types

enum  ListType { Unnumbered =1 , Unchecked =-2 , Checked_x =-3 , Checked_X =-4 }
 

Public Member Functions

 DocAutoList (DocParser *parser, DocNodeVariant *parent, int indent, bool isEnumList, int depth, bool isCheckedList)
 
bool isEnumList () const
 
int indent () const
 
bool isCheckedList () const
 
int depth () const
 
Token parse ()
 
Public Member Functions inherited from DocCompoundNode
 DocCompoundNode (DocParser *parser, DocNodeVariant *parent)
 
DocNodeListchildren ()
 
const DocNodeListchildren () const
 
Public Member Functions inherited from DocNode
 DocNode (DocParser *parser, DocNodeVariant *parent)
 
 ~DocNode ()=default
 
DocNodeVariantparent ()
 
const DocNodeVariantparent () const
 
DocNodeVariantthisVariant ()
 
const DocNodeVariantthisVariant () const
 
void setThisVariant (DocNodeVariant *thisVariant)
 
DocParserparser ()
 
const DocParserparser () const
 
void setParent (DocNodeVariant *parent)
 
bool isPreformatted () const
 

Private Attributes

int m_indent = 0
 
bool m_isEnumList = false
 
bool m_isCheckedList = false
 
int m_depth = 0
 

Additional Inherited Members

Protected Types inherited from DocNode
enum  RefType { Unknown , Anchor , Section , Table }
 
Protected Member Functions inherited from DocNode
void setInsidePreformatted (bool p)
 

Detailed Description

Node representing an auto List.

Definition at line 565 of file docnode.h.

Member Enumeration Documentation

◆ ListType

Enumerator
Unnumbered 
Unchecked 
Checked_x 
Checked_X 

Definition at line 568 of file docnode.h.

569 {
570 Unnumbered=1, Unchecked=-2, Checked_x=-3, Checked_X=-4 // positive numbers give the label
571 };

Constructor & Destructor Documentation

◆ DocAutoList()

DocAutoList::DocAutoList ( DocParser * parser,
DocNodeVariant * parent,
int indent,
bool isEnumList,
int depth,
bool isCheckedList )

Definition at line 2813 of file docnode.cpp.

2814 :
2817{
2818}
int m_depth
Definition docnode.h:585
bool isCheckedList() const
Definition docnode.h:577
bool isEnumList() const
Definition docnode.h:575
int depth() const
Definition docnode.h:578
int m_indent
Definition docnode.h:582
bool m_isCheckedList
Definition docnode.h:584
int indent() const
Definition docnode.h:576
bool m_isEnumList
Definition docnode.h:583
DocCompoundNode(DocParser *parser, DocNodeVariant *parent)
Definition docnode.h:140
DocParser * parser()
Definition docnode.h:97
DocNodeVariant * parent()
Definition docnode.h:89

References depth(), DocCompoundNode::DocCompoundNode(), indent(), isCheckedList(), isEnumList(), m_depth, m_indent, m_isCheckedList, m_isEnumList, DocNode::parent(), and DocNode::parser().

Member Function Documentation

◆ depth()

int DocAutoList::depth ( ) const
inline

Definition at line 578 of file docnode.h.

578{ return m_depth; }

References m_depth.

Referenced by DocAutoList(), and HtmlDocVisitor::operator()().

◆ indent()

int DocAutoList::indent ( ) const
inline

Definition at line 576 of file docnode.h.

576{ return m_indent; }

References m_indent.

Referenced by DocAutoList(), and DocPara::parse().

◆ isCheckedList()

bool DocAutoList::isCheckedList ( ) const
inline

◆ isEnumList()

◆ parse()

Token DocAutoList::parse ( )

Definition at line 2820 of file docnode.cpp.

2821{
2822 AUTO_TRACE();
2823 Token retval = Token::make_RetVal_OK();
2824 int num=1;
2825 auto ns = AutoNodeStack(parser(),thisVariant());
2827 // first item or sub list => create new list
2828 do
2829 {
2830 switch (parser()->context.token->id)
2831 {
2832 case -1:
2833 break;
2834 case DocAutoList::Unchecked: // unchecked
2835 case DocAutoList::Checked_x: // checked with x
2836 case DocAutoList::Checked_X: // checked with X
2837 num = parser()->context.token->id;
2838 break;
2839 default: // explicitly numbered list
2840 num=parser()->context.token->id; // override num with real number given
2841 break;
2842 }
2843
2844 children().append<DocAutoListItem>(parser(),thisVariant(),m_indent,num++);
2845 retval = children().get_last<DocAutoListItem>()->parse();
2846 //printf("DocAutoList::parse(): retval=0x%x parser()->context.token->indent=%d m_indent=%d "
2847 // "m_isEnumList=%d parser()->context.token->isEnumList=%d parser()->context.token->name=%s\n",
2848 // retval,parser()->context.token->indent,m_indent,m_isEnumList,parser()->context.token->isEnumList,
2849 // qPrint(parser()->context.token->name));
2850 //printf("num=%d parser()->context.token->id=%d\n",num,parser()->context.token->id);
2851 }
2852 while (retval.is(TokenRetval::TK_LISTITEM) && // new list item
2853 m_indent==parser()->context.token->indent && // at same indent level
2854 m_isEnumList==parser()->context.token->isEnumList && // of the same kind
2855 m_isCheckedList==parser()->context.token->isCheckedList && // of the same kind
2856 (parser()->context.token->id==-1 || parser()->context.token->id>=num) // increasing number (or no number or checked list)
2857 );
2858
2860 AUTO_TRACE_EXIT("retval={}",retval.to_string());
2861 return retval;
2862}
Token parse()
Definition docnode.cpp:2820
DocNodeList & children()
Definition docnode.h:142
DocNodeVariant * thisVariant()
Definition docnode.h:92
DocTokenizer tokenizer
DocParserContext context
void startAutoList()
bool is(TokenRetval rv) const
TOKEN_SPECIFICATIONS RETVAL_SPECIFICATIONS const char * to_string() const
#define AUTO_TRACE(...)
Definition docnode.cpp:46
#define AUTO_TRACE_EXIT(...)
Definition docnode.cpp:48
void append(Args &&... args)
Append a new DocNodeVariant to the list by constructing it with type T and parameters Args.
Definition docnode.h:1393
T * get_last()
Returns a pointer to the last element in the list if that element exists and holds a T,...
Definition docnode.h:1404
TokenInfo * token
Definition docparser_p.h:92

References DocNodeList::append(), AUTO_TRACE, AUTO_TRACE_EXIT, Checked_X, Checked_x, DocCompoundNode::children(), DocParser::context, DocTokenizer::endAutoList(), DocNodeList::get_last(), TokenInfo::id, Token::is(), m_indent, m_isCheckedList, m_isEnumList, parse(), DocNode::parser(), DocTokenizer::startAutoList(), DocNode::thisVariant(), Token::to_string(), DocParserContext::token, DocParser::tokenizer, and Unchecked.

Referenced by parse().

Member Data Documentation

◆ m_depth

int DocAutoList::m_depth = 0
private

Definition at line 585 of file docnode.h.

Referenced by depth(), and DocAutoList().

◆ m_indent

int DocAutoList::m_indent = 0
private

Definition at line 582 of file docnode.h.

Referenced by DocAutoList(), indent(), and parse().

◆ m_isCheckedList

bool DocAutoList::m_isCheckedList = false
private

Definition at line 584 of file docnode.h.

Referenced by DocAutoList(), isCheckedList(), and parse().

◆ m_isEnumList

bool DocAutoList::m_isEnumList = false
private

Definition at line 583 of file docnode.h.

Referenced by DocAutoList(), isEnumList(), and parse().


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