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

#include <src/printdocvisitor.h>

Public Member Functions

 PrintDocVisitor ()
 
void operator() (const DocWord &w)
 
void operator() (const DocLinkedWord &w)
 
void operator() (const DocWhiteSpace &w)
 
void operator() (const DocSymbol &s)
 
void operator() (const DocEmoji &s)
 
void operator() (const DocURL &u)
 
void operator() (const DocLineBreak &)
 
void operator() (const DocHorRuler &)
 
void operator() (const DocStyleChange &s)
 
void operator() (const DocVerbatim &s)
 
void operator() (const DocAnchor &a)
 
void operator() (const DocInclude &inc)
 
void operator() (const DocIncOperator &op)
 
void operator() (const DocFormula &f)
 
void operator() (const DocIndexEntry &i)
 
void operator() (const DocSimpleSectSep &)
 
void operator() (const DocCite &cite)
 
void operator() (const DocSeparator &)
 
template<class T >
void visitChildren (const T &t)
 
void operator() (const DocAutoList &l)
 
void operator() (const DocAutoListItem &li)
 
void operator() (const DocPara &p)
 
void operator() (const DocRoot &r)
 
void operator() (const DocSimpleSect &s)
 
void operator() (const DocTitle &t)
 
void operator() (const DocSimpleList &l)
 
void operator() (const DocSimpleListItem &li)
 
void operator() (const DocSection &s)
 
void operator() (const DocHtmlList &s)
 
void operator() (const DocHtmlListItem &li)
 
void operator() (const DocHtmlDescList &l)
 
void operator() (const DocHtmlDescTitle &dt)
 
void operator() (const DocHtmlDescData &dd)
 
void operator() (const DocHtmlTable &t)
 
void operator() (const DocHtmlRow &tr)
 
void operator() (const DocHtmlCell &c)
 
void operator() (const DocHtmlCaption &c)
 
void operator() (const DocInternal &i)
 
void operator() (const DocHRef &href)
 
void operator() (const DocHtmlSummary &summary)
 
void operator() (const DocHtmlDetails &details)
 
void operator() (const DocHtmlHeader &header)
 
void operator() (const DocImage &img)
 
void operator() (const DocDotFile &df)
 
void operator() (const DocMscFile &df)
 
void operator() (const DocDiaFile &df)
 
void operator() (const DocLink &lnk)
 
void operator() (const DocRef &ref)
 
void operator() (const DocSecRefItem &ref)
 
void operator() (const DocSecRefList &rl)
 
void operator() (const DocParamList &pl)
 
void operator() (const DocParamSect &ps)
 
void operator() (const DocXRefItem &x)
 
void operator() (const DocInternalRef &r)
 
void operator() (const DocText &t)
 
void operator() (const DocHtmlBlockQuote &q)
 
void operator() (const DocVhdlFlow &vf)
 
void operator() (const DocParBlock &pb)
 

Private Member Functions

void indent ()
 
void indent_leaf ()
 
void indent_pre ()
 
void indent_post ()
 

Private Attributes

int m_indent
 
bool m_needsEnter
 
bool m_insidePre
 

Detailed Description

Visitor implementation for pretty printing

Definition at line 27 of file printdocvisitor.h.

Constructor & Destructor Documentation

◆ PrintDocVisitor()

PrintDocVisitor::PrintDocVisitor ( )
inline

Definition at line 30 of file printdocvisitor.h.

Member Function Documentation

◆ indent()

void PrintDocVisitor::indent ( )
inlineprivate

Definition at line 727 of file printdocvisitor.h.

728 {
729 if (m_needsEnter) printf("\n");
730 for (int i=0;i<m_indent;i++) printf(".");
732 }

References FALSE, m_indent, and m_needsEnter.

Referenced by indent_leaf(), indent_post(), and indent_pre().

◆ indent_leaf()

void PrintDocVisitor::indent_leaf ( )
inlineprivate

◆ indent_post()

◆ indent_pre()

◆ operator()() [1/57]

void PrintDocVisitor::operator() ( const DocAnchor & a)
inline

Definition at line 189 of file printdocvisitor.h.

190 {
191 indent_leaf();
192 printf("<anchor name=\"%s\"/>",qPrint(a.anchor()));
193 }
QCString anchor() const
Definition docnode.h:230
const char * qPrint(const char *s)
Definition qcstring.h:652

References DocAnchor::anchor(), indent_leaf(), and qPrint().

◆ operator()() [2/57]

void PrintDocVisitor::operator() ( const DocAutoList & l)
inline

Definition at line 273 of file printdocvisitor.h.

274 {
275 indent_pre();
276 if (l.isEnumList())
277 {
278 printf("<ol>\n");
279 }
280 else
281 {
282 printf("<ul>\n");
283 }
284 visitChildren(l);
285 indent_post();
286 if (l.isEnumList())
287 {
288 printf("</ol>\n");
289 }
290 else
291 {
292 printf("</ul>\n");
293 }
294 }
bool isEnumList() const
Definition docnode.h:552
void visitChildren(const T &t)

References indent_post(), indent_pre(), DocAutoList::isEnumList(), and visitChildren().

◆ operator()() [3/57]

void PrintDocVisitor::operator() ( const DocAutoListItem & li)
inline

Definition at line 295 of file printdocvisitor.h.

296 {
297 indent_pre();
298 switch (li.itemNumber())
299 {
300 case DocAutoList::Unchecked: // unchecked
301 printf("<li class=\"unchecked\">\n");
302 break;
303 case DocAutoList::Checked_x: // checked with x
304 case DocAutoList::Checked_X: // checked with X
305 printf("<li class=\"checked\">\n");
306 break;
307 default:
308 printf("<li>\n");
309 break;
310 }
311 visitChildren(li);
312 indent_post();
313 printf("</li>\n");
314 }
int itemNumber() const
Definition docnode.h:570

References DocAutoList::Checked_x, DocAutoList::Checked_X, indent_post(), indent_pre(), DocAutoListItem::itemNumber(), DocAutoList::Unchecked, and visitChildren().

◆ operator()() [4/57]

void PrintDocVisitor::operator() ( const DocCite & cite)
inline

Definition at line 248 of file printdocvisitor.h.

249 {
250 indent_leaf();
251 printf("<cite ref=\"%s\" file=\"%s\" "
252 "anchor=\"%s\" text=\"%s\""
253 "/>\n",
254 qPrint(cite.ref()),qPrint(cite.file()),qPrint(cite.anchor()),
255 qPrint(cite.text()));
256 }
QCString text() const
Definition docnode.h:250
QCString anchor() const
Definition docnode.h:249
QCString ref() const
Definition docnode.h:248
QCString file() const
Definition docnode.h:246

References DocCite::anchor(), DocCite::file(), indent_leaf(), qPrint(), DocCite::ref(), and DocCite::text().

◆ operator()() [5/57]

void PrintDocVisitor::operator() ( const DocDiaFile & df)
inline

Definition at line 594 of file printdocvisitor.h.

595 {
596 indent_pre();
597 printf("<diafile src=\"%s\">\n",qPrint(df.name()));
598 visitChildren(df);
599 indent_post();
600 printf("</diafile>\n");
601 }
QCString name() const
Definition docnode.h:655

References indent_post(), indent_pre(), DocDiagramFileBase::name(), qPrint(), and visitChildren().

◆ operator()() [6/57]

void PrintDocVisitor::operator() ( const DocDotFile & df)
inline

Definition at line 578 of file printdocvisitor.h.

579 {
580 indent_pre();
581 printf("<dotfile src=\"%s\">\n",qPrint(df.name()));
582 visitChildren(df);
583 indent_post();
584 printf("</dotfile>\n");
585 }

References indent_post(), indent_pre(), DocDiagramFileBase::name(), qPrint(), and visitChildren().

◆ operator()() [7/57]

void PrintDocVisitor::operator() ( const DocEmoji & s)
inline

Definition at line 69 of file printdocvisitor.h.

70 {
72 const char *res = EmojiEntityMapper::instance().name(s.index());
73 if (res)
74 {
75 printf("%s",res);
76 }
77 else
78 {
79 printf("print: non supported emoji found: %s\n",qPrint(s.name()));
80 }
81 }
int index() const
Definition docnode.h:324
QCString name() const
Definition docnode.h:323
const char * name(int index) const
Access routine to the name of the Emoji entity.
Definition emoji.cpp:1968
static EmojiEntityMapper & instance()
Returns the one and only instance of the Emoji entity mapper.
Definition emoji.cpp:1920

References indent_leaf(), DocEmoji::index(), EmojiEntityMapper::instance(), DocEmoji::name(), EmojiEntityMapper::name(), and qPrint().

◆ operator()() [8/57]

void PrintDocVisitor::operator() ( const DocFormula & f)
inline

Definition at line 233 of file printdocvisitor.h.

234 {
235 indent_leaf();
236 printf("<formula name=%s text=%s/>",qPrint(f.name()),qPrint(f.text()));
237 }
QCString text() const
Definition docnode.h:505
QCString name() const
Definition docnode.h:504

References indent_leaf(), DocFormula::name(), qPrint(), and DocFormula::text().

◆ operator()() [9/57]

void PrintDocVisitor::operator() ( const DocHorRuler & )
inline

Definition at line 92 of file printdocvisitor.h.

93 {
95 printf("<hr>");
96 }

References indent_leaf().

◆ operator()() [10/57]

void PrintDocVisitor::operator() ( const DocHRef & href)
inline

Definition at line 514 of file printdocvisitor.h.

515 {
516 indent_pre();
517 printf("<a url=\"%s\">\n",qPrint(href.url()));
518 visitChildren(href);
519 indent_post();
520 printf("</a>\n");
521 }
QCString url() const
Definition docnode.h:792

References indent_post(), indent_pre(), qPrint(), DocHRef::url(), and visitChildren().

◆ operator()() [11/57]

void PrintDocVisitor::operator() ( const DocHtmlBlockQuote & q)
inline

Definition at line 700 of file printdocvisitor.h.

701 {
702 indent_pre();
703 printf("<blockquote>\n");
704 visitChildren(q);
705 indent_post();
706 printf("</blockquote>\n");
707 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [12/57]

void PrintDocVisitor::operator() ( const DocHtmlCaption & c)
inline

Definition at line 498 of file printdocvisitor.h.

499 {
500 indent_pre();
501 printf("<caption>\n");
502 visitChildren(c);
503 indent_post();
504 printf("</caption>\n");
505 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [13/57]

void PrintDocVisitor::operator() ( const DocHtmlCell & c)
inline

Definition at line 490 of file printdocvisitor.h.

491 {
492 indent_pre();
493 printf("<t%c>\n",c.isHeading()?'h':'d');
494 visitChildren(c);
495 indent_post();
496 printf("</t%c>\n",c.isHeading()?'h':'d');
497 }
bool isHeading() const
Definition docnode.h:1162

References indent_post(), indent_pre(), DocHtmlCell::isHeading(), and visitChildren().

◆ operator()() [14/57]

void PrintDocVisitor::operator() ( const DocHtmlDescData & dd)
inline

Definition at line 461 of file printdocvisitor.h.

462 {
463 indent_pre();
464 printf("<dd>\n");
465 visitChildren(dd);
466 indent_post();
467 printf("</dd>\n");
468 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [15/57]

void PrintDocVisitor::operator() ( const DocHtmlDescList & l)
inline

Definition at line 445 of file printdocvisitor.h.

446 {
447 indent_pre();
448 printf("<dl>\n");
449 visitChildren(l);
450 indent_post();
451 printf("</dl>\n");
452 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [16/57]

void PrintDocVisitor::operator() ( const DocHtmlDescTitle & dt)
inline

Definition at line 453 of file printdocvisitor.h.

454 {
455 indent_pre();
456 printf("<dt>\n");
457 visitChildren(dt);
458 indent_post();
459 printf("</dt>\n");
460 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [17/57]

void PrintDocVisitor::operator() ( const DocHtmlDetails & details)
inline

Definition at line 535 of file printdocvisitor.h.

536 {
537 indent_pre();
538 printf("<details");
539 for (const auto &opt : details.attribs())
540 {
541 printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
542 }
543 printf(">\n");
544 auto summary = details.summary();
545 if (summary)
546 {
547 std::visit(*this,*summary);
548 }
550 indent_post();
551 printf("</details>\n");
552 }

References indent_post(), indent_pre(), qPrint(), and visitChildren().

◆ operator()() [18/57]

void PrintDocVisitor::operator() ( const DocHtmlHeader & header)
inline

Definition at line 553 of file printdocvisitor.h.

554 {
555 indent_pre();
556 printf("<h%d>\n",header.level());
557 visitChildren(header);
558 indent_post();
559 printf("</h%d>\n",header.level());
560 }
int level() const
Definition docnode.h:839

References indent_post(), indent_pre(), DocHtmlHeader::level(), and visitChildren().

◆ operator()() [19/57]

void PrintDocVisitor::operator() ( const DocHtmlList & s)
inline

Definition at line 405 of file printdocvisitor.h.

406 {
407 indent_pre();
408 if (s.type()==DocHtmlList::Ordered)
409 {
410 printf("<ol");
411 for (const auto &opt : s.attribs())
412 {
413 printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
414 }
415 printf(">\n");
416 }
417 else
418 {
419 printf("<ul>\n");
420 }
421 visitChildren(s);
422 indent_post();
423 if (s.type()==DocHtmlList::Ordered)
424 {
425 printf("</ol>\n");
426 }
427 else
428 {
429 printf("</ul>\n");
430 }
431 }
Type type() const
Definition docnode.h:967

References DocHtmlList::attribs(), indent_post(), indent_pre(), DocHtmlList::Ordered, qPrint(), DocHtmlList::type(), and visitChildren().

◆ operator()() [20/57]

void PrintDocVisitor::operator() ( const DocHtmlListItem & li)
inline

Definition at line 432 of file printdocvisitor.h.

433 {
434 indent_pre();
435 printf("<li");
436 for (const auto &opt : li.attribs())
437 {
438 printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
439 }
440 printf(">\n");
441 visitChildren(li);
442 indent_post();
443 printf("</li>\n");
444 }

References DocHtmlListItem::attribs(), indent_post(), indent_pre(), qPrint(), and visitChildren().

◆ operator()() [21/57]

void PrintDocVisitor::operator() ( const DocHtmlRow & tr)
inline

Definition at line 482 of file printdocvisitor.h.

483 {
484 indent_pre();
485 printf("<tr>\n");
486 visitChildren(tr);
487 indent_post();
488 printf("</tr>\n");
489 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [22/57]

void PrintDocVisitor::operator() ( const DocHtmlSummary & summary)
inline

Definition at line 522 of file printdocvisitor.h.

523 {
524 indent_pre();
525 printf("<summary");
526 for (const auto &opt : summary.attribs())
527 {
528 printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
529 }
530 printf(">\n");
531 visitChildren(summary);
532 indent_post();
533 printf("</summary>\n");
534 }

References DocHtmlSummary::attribs(), indent_post(), indent_pre(), qPrint(), and visitChildren().

◆ operator()() [23/57]

void PrintDocVisitor::operator() ( const DocHtmlTable & t)
inline

Definition at line 469 of file printdocvisitor.h.

470 {
471 indent_pre();
472 printf("<table rows=\"%zu\" cols=\"%zu\">\n",
473 t.numRows(),t.numColumns());
474 visitChildren(t);
475 if (t.caption())
476 {
477 std::visit(*this, *t.caption());
478 }
479 indent_post();
480 printf("</table>\n");
481 }
size_t numRows() const
Definition docnode.h:1235
size_t numColumns() const
Definition docnode.h:1240
const DocNodeVariant * caption() const
Definition docnode.cpp:1949

References DocHtmlTable::caption(), indent_post(), indent_pre(), DocHtmlTable::numColumns(), DocHtmlTable::numRows(), and visitChildren().

◆ operator()() [24/57]

void PrintDocVisitor::operator() ( const DocImage & img)
inline

Definition at line 561 of file printdocvisitor.h.

562 {
563 indent_pre();
564 printf("<image src=\"%s\" type=\"",qPrint(img.name()));
565 switch(img.type())
566 {
567 case DocImage::Html: printf("html"); break;
568 case DocImage::Latex: printf("latex"); break;
569 case DocImage::Rtf: printf("rtf"); break;
570 case DocImage::DocBook: printf("docbook"); break;
571 case DocImage::Xml: printf("xml"); break;
572 }
573 printf("\" %s %s inline=\"%s\">\n",qPrint(img.width()),qPrint(img.height()),img.isInlineImage() ? "yes" : "no");
574 visitChildren(img);
575 indent_post();
576 printf("</image>\n");
577 }
QCString name() const
Definition docnode.h:619
QCString height() const
Definition docnode.h:622
Type type() const
Definition docnode.h:618
QCString width() const
Definition docnode.h:621
@ DocBook
Definition docnode.h:615
bool isInlineImage() const
Definition docnode.h:625

References DocImage::DocBook, DocImage::height(), DocImage::Html, indent_post(), indent_pre(), DocImage::isInlineImage(), DocImage::Latex, DocImage::name(), qPrint(), DocImage::Rtf, DocImage::type(), visitChildren(), DocImage::width(), and DocImage::Xml.

◆ operator()() [25/57]

void PrintDocVisitor::operator() ( const DocInclude & inc)
inline

Definition at line 194 of file printdocvisitor.h.

195 {
196 indent_leaf();
197 printf("<include file=\"%s\" type=\"",qPrint(inc.file()));
198 switch(inc.type())
199 {
200 case DocInclude::Include: printf("include"); break;
201 case DocInclude::IncWithLines: printf("incwithlines"); break;
202 case DocInclude::DontInclude: printf("dontinclude"); break;
203 case DocInclude::DontIncWithLines: printf("dontinwithlines"); break;
205 printf("htmlinclude");
206 if (inc.isBlock()) printf(" block=\"yes\"");
207 break;
208 case DocInclude::LatexInclude: printf("latexinclude"); break;
209 case DocInclude::RtfInclude: printf("rtfinclude"); break;
210 case DocInclude::DocbookInclude: printf("docbookinclude"); break;
211 case DocInclude::ManInclude: printf("maninclude"); break;
212 case DocInclude::XmlInclude: printf("xmlinclude"); break;
213 case DocInclude::VerbInclude: printf("verbinclude"); break;
214 case DocInclude::Snippet: printf("snippet"); break;
215 case DocInclude::SnippetTrimLeft: printf("snippettrimleft"); break;
216 case DocInclude::SnippetWithLines: printf("snipwithlines"); break;
217 }
218 printf("\"/>");
219 }
bool isBlock() const
Definition docnode.h:435
@ LatexInclude
Definition docnode.h:416
@ SnippetTrimLeft
Definition docnode.h:419
@ SnippetWithLines
Definition docnode.h:417
@ DontIncWithLines
Definition docnode.h:418
@ IncWithLines
Definition docnode.h:417
@ HtmlInclude
Definition docnode.h:416
@ VerbInclude
Definition docnode.h:416
@ DontInclude
Definition docnode.h:416
@ DocbookInclude
Definition docnode.h:418
Type type() const
Definition docnode.h:429
QCString file() const
Definition docnode.h:427

References DocInclude::DocbookInclude, DocInclude::DontInclude, DocInclude::DontIncWithLines, DocInclude::file(), DocInclude::HtmlInclude, DocInclude::Include, DocInclude::IncWithLines, indent_leaf(), DocInclude::isBlock(), DocInclude::LatexInclude, DocInclude::ManInclude, qPrint(), DocInclude::RtfInclude, DocInclude::Snippet, DocInclude::SnippetTrimLeft, DocInclude::SnippetWithLines, DocInclude::type(), DocInclude::VerbInclude, and DocInclude::XmlInclude.

◆ operator()() [26/57]

void PrintDocVisitor::operator() ( const DocIncOperator & op)
inline

Definition at line 220 of file printdocvisitor.h.

221 {
222 indent_leaf();
223 printf("<incoperator pattern=\"%s\" type=\"",qPrint(op.pattern()));
224 switch(op.type())
225 {
226 case DocIncOperator::Line: printf("line"); break;
227 case DocIncOperator::Skip: printf("skip"); break;
228 case DocIncOperator::SkipLine: printf("skipline"); break;
229 case DocIncOperator::Until: printf("until"); break;
230 }
231 printf("\"/>");
232 }
Type type() const
Definition docnode.h:459
QCString pattern() const
Definition docnode.h:474

References indent_leaf(), DocIncOperator::Line, DocIncOperator::pattern(), qPrint(), DocIncOperator::Skip, DocIncOperator::SkipLine, DocIncOperator::type(), and DocIncOperator::Until.

◆ operator()() [27/57]

void PrintDocVisitor::operator() ( const DocIndexEntry & i)
inline

Definition at line 238 of file printdocvisitor.h.

239 {
240 indent_leaf();
241 printf("<indexentry>%s</indexentry\n",qPrint(i.entry()));
242 }
QCString entry() const
Definition docnode.h:531

References DocIndexEntry::entry(), indent_leaf(), and qPrint().

◆ operator()() [28/57]

void PrintDocVisitor::operator() ( const DocInternal & i)
inline

Definition at line 506 of file printdocvisitor.h.

507 {
508 indent_pre();
509 printf("<internal>\n");
510 visitChildren(i);
511 indent_post();
512 printf("</internal>\n");
513 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [29/57]

void PrintDocVisitor::operator() ( const DocInternalRef & r)
inline

Definition at line 684 of file printdocvisitor.h.

685 {
686 indent_pre();
687 printf("<internalref file=%s anchor=%s>\n",qPrint(r.file()),qPrint(r.anchor()));
688 visitChildren(r);
689 indent_post();
690 printf("</internalref>\n");
691 }
QCString file() const
Definition docnode.h:773
QCString anchor() const
Definition docnode.h:775

References DocInternalRef::anchor(), DocInternalRef::file(), indent_post(), indent_pre(), qPrint(), and visitChildren().

◆ operator()() [30/57]

void PrintDocVisitor::operator() ( const DocLineBreak & )
inline

Definition at line 87 of file printdocvisitor.h.

88 {
90 printf("<br/>");
91 }

References indent_leaf().

◆ operator()() [31/57]

void PrintDocVisitor::operator() ( const DocLink & lnk)
inline

Definition at line 602 of file printdocvisitor.h.

603 {
604 indent_pre();
605 printf("<link ref=\"%s\" file=\"%s\" anchor=\"%s\">\n",
606 qPrint(lnk.ref()),qPrint(lnk.file()),qPrint(lnk.anchor()));
607 visitChildren(lnk);
608 indent_post();
609 printf("</link>\n");
610 }

References DocLink::anchor(), DocLink::file(), indent_post(), indent_pre(), qPrint(), DocLink::ref(), and visitChildren().

◆ operator()() [32/57]

void PrintDocVisitor::operator() ( const DocLinkedWord & w)
inline

Definition at line 39 of file printdocvisitor.h.

40 {
42 printf("%s",qPrint(w.word()));
43 }
QCString word() const
Definition docnode.h:168

References indent_leaf(), qPrint(), and DocLinkedWord::word().

◆ operator()() [33/57]

void PrintDocVisitor::operator() ( const DocMscFile & df)
inline

Definition at line 586 of file printdocvisitor.h.

587 {
588 indent_pre();
589 printf("<mscfile src=\"%s\">\n",qPrint(df.name()));
590 visitChildren(df);
591 indent_post();
592 printf("</mscfile>\n");
593 }

References indent_post(), indent_pre(), DocDiagramFileBase::name(), qPrint(), and visitChildren().

◆ operator()() [34/57]

void PrintDocVisitor::operator() ( const DocPara & p)
inline

Definition at line 315 of file printdocvisitor.h.

316 {
317 indent_pre();
318 printf("<para>\n");
319 visitChildren(p);
320 indent_post();
321 printf("</para>\n");
322 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [35/57]

void PrintDocVisitor::operator() ( const DocParamList & pl)
inline

Definition at line 641 of file printdocvisitor.h.

642 {
643 indent_pre();
644 printf("<parameters>");
645 if (!pl.parameters().empty())
646 {
647 printf("<param>");
648 for (const auto &param : pl.parameters())
649 {
650 std::visit(*this,param);
651 }
652 printf("</param>");
653 }
654 printf("\n");
655 indent_post();
656 printf("</parameters>\n");
657 }
const DocNodeList & parameters() const
Definition docnode.h:1091
bool empty() const
checks whether the container is empty
Definition growvector.h:140

References GrowVector< T >::empty(), indent_post(), indent_pre(), and DocParamList::parameters().

◆ operator()() [36/57]

void PrintDocVisitor::operator() ( const DocParamSect & ps)
inline

Definition at line 658 of file printdocvisitor.h.

659 {
660 indent_pre();
661 printf("<paramsect type=");
662 switch (ps.type())
663 {
664 case DocParamSect::Param: printf("param"); break;
665 case DocParamSect::RetVal: printf("retval"); break;
666 case DocParamSect::Exception: printf("exception"); break;
667 case DocParamSect::TemplateParam: printf("templateparam"); break;
668 case DocParamSect::Unknown: printf("unknown"); break;
669 }
670 printf(">\n");
671 visitChildren(ps);
672 indent_post();
673 printf("</paramsect>\n");
674 }
Type type() const
Definition docnode.h:1030

References DocParamSect::Exception, indent_post(), indent_pre(), DocParamSect::Param, DocParamSect::RetVal, DocParamSect::TemplateParam, DocParamSect::type(), DocParamSect::Unknown, and visitChildren().

◆ operator()() [37/57]

void PrintDocVisitor::operator() ( const DocParBlock & pb)
inline

Definition at line 716 of file printdocvisitor.h.

717 {
718 indent_pre();
719 printf("<parblock>\n");
720 visitChildren(pb);
721 indent_post();
722 printf("</parblock>\n");
723 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [38/57]

void PrintDocVisitor::operator() ( const DocRef & ref)
inline

Definition at line 611 of file printdocvisitor.h.

612 {
613 indent_pre();
614 printf("<ref ref=\"%s\" file=\"%s\" "
615 "anchor=\"%s\" targetTitle=\"%s\""
616 " hasLinkText=\"%s\" refToAnchor=\"%s\" refToSection=\"%s\" refToTable=\"%s\">\n",
617 qPrint(ref.ref()),qPrint(ref.file()),qPrint(ref.anchor()),
618 qPrint(ref.targetTitle()),ref.hasLinkText()?"yes":"no",
619 ref.refToAnchor()?"yes":"no", ref.refToSection()?"yes":"no",
620 ref.refToTable()?"yes":"no");
621 visitChildren(ref);
622 indent_post();
623 printf("</ref>\n");
624 }
QCString anchor() const
Definition docnode.h:747
QCString targetTitle() const
Definition docnode.h:748
QCString file() const
Definition docnode.h:744
QCString ref() const
Definition docnode.h:746
bool hasLinkText() const
Definition docnode.h:750

References DocRef::anchor(), DocRef::file(), DocRef::hasLinkText(), indent_post(), indent_pre(), qPrint(), DocRef::ref(), DocRef::refToAnchor(), DocRef::refToSection(), DocRef::refToTable(), DocRef::targetTitle(), and visitChildren().

◆ operator()() [39/57]

void PrintDocVisitor::operator() ( const DocRoot & r)
inline

Definition at line 323 of file printdocvisitor.h.

324 {
325 indent_pre();
326 printf("<root>\n");
327 visitChildren(r);
328 indent_post();
329 printf("</root>\n");
330 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [40/57]

void PrintDocVisitor::operator() ( const DocSecRefItem & ref)
inline

Definition at line 625 of file printdocvisitor.h.

626 {
627 indent_pre();
628 printf("<secrefitem target=\"%s\">\n",qPrint(ref.target()));
629 visitChildren(ref);
630 indent_post();
631 printf("</secrefitem>\n");
632 }
QCString target() const
Definition docnode.h:900

References indent_post(), indent_pre(), qPrint(), DocSecRefItem::target(), and visitChildren().

◆ operator()() [41/57]

void PrintDocVisitor::operator() ( const DocSecRefList & rl)
inline

Definition at line 633 of file printdocvisitor.h.

634 {
635 indent_pre();
636 printf("<secreflist>\n");
637 visitChildren(rl);
638 indent_post();
639 printf("</secreflist>\n");
640 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [42/57]

void PrintDocVisitor::operator() ( const DocSection & s)
inline

Definition at line 393 of file printdocvisitor.h.

394 {
395 indent_pre();
396 printf("<sect%d>\n",s.level());
397 if (s.title())
398 {
399 std::visit(*this, *s.title());
400 }
401 visitChildren(s);
402 indent_post();
403 printf("</sect%d>\n",s.level());
404 }
int level() const
Definition docnode.h:880
const DocNodeVariant * title() const
Definition docnode.h:881

References indent_post(), indent_pre(), DocSection::level(), DocSection::title(), and visitChildren().

◆ operator()() [43/57]

void PrintDocVisitor::operator() ( const DocSeparator & )
inline

Definition at line 257 of file printdocvisitor.h.

258 {
259 indent_leaf();
260 printf("<sep/>");
261 }

References indent_leaf().

◆ operator()() [44/57]

void PrintDocVisitor::operator() ( const DocSimpleList & l)
inline

Definition at line 374 of file printdocvisitor.h.

375 {
376 indent_pre();
377 printf("<ul>\n");
378 visitChildren(l);
379 indent_post();
380 printf("</ul>\n");
381 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [45/57]

void PrintDocVisitor::operator() ( const DocSimpleListItem & li)
inline

Definition at line 382 of file printdocvisitor.h.

383 {
384 indent_pre();
385 printf("<li>\n");
386 if (li.paragraph())
387 {
388 visit(*this,*li.paragraph());
389 }
390 indent_post();
391 printf("</li>\n");
392 }
const DocNodeVariant * paragraph() const
Definition docnode.h:1119

References indent_post(), indent_pre(), and DocSimpleListItem::paragraph().

◆ operator()() [46/57]

void PrintDocVisitor::operator() ( const DocSimpleSect & s)
inline

Definition at line 331 of file printdocvisitor.h.

332 {
333 indent_pre();
334 printf("<simplesect type=");
335 switch(s.type())
336 {
337 case DocSimpleSect::See: printf("see"); break;
338 case DocSimpleSect::Return: printf("return"); break;
339 case DocSimpleSect::Author: printf("author"); break;
340 case DocSimpleSect::Authors: printf("authors"); break;
341 case DocSimpleSect::Version: printf("version"); break;
342 case DocSimpleSect::Since: printf("since"); break;
343 case DocSimpleSect::Date: printf("date"); break;
344 case DocSimpleSect::Note: printf("note"); break;
345 case DocSimpleSect::Warning: printf("warning"); break;
346 case DocSimpleSect::Pre: printf("pre"); break;
347 case DocSimpleSect::Post: printf("post"); break;
348 case DocSimpleSect::Copyright: printf("copyright"); break;
349 case DocSimpleSect::Invar: printf("invar"); break;
350 case DocSimpleSect::Remark: printf("remark"); break;
351 case DocSimpleSect::Attention: printf("attention"); break;
352 case DocSimpleSect::Important: printf("important"); break;
353 case DocSimpleSect::User: printf("user"); break;
354 case DocSimpleSect::Rcs: printf("rcs"); break;
355 case DocSimpleSect::Unknown: printf("unknown"); break;
356 }
357 printf(">\n");
358 if (s.title())
359 {
360 std::visit(*this, *s.title());
361 }
362 visitChildren(s);
363 indent_post();
364 printf("</simplesect>\n");
365 }
Type type() const
Definition docnode.h:988
const DocNodeVariant * title() const
Definition docnode.h:995

References DocSimpleSect::Attention, DocSimpleSect::Author, DocSimpleSect::Authors, DocSimpleSect::Copyright, DocSimpleSect::Date, DocSimpleSect::Important, indent_post(), indent_pre(), DocSimpleSect::Invar, DocSimpleSect::Note, DocSimpleSect::Post, DocSimpleSect::Pre, DocSimpleSect::Rcs, DocSimpleSect::Remark, DocSimpleSect::Return, DocSimpleSect::See, DocSimpleSect::Since, DocSimpleSect::title(), DocSimpleSect::type(), DocSimpleSect::Unknown, DocSimpleSect::User, DocSimpleSect::Version, visitChildren(), and DocSimpleSect::Warning.

◆ operator()() [47/57]

void PrintDocVisitor::operator() ( const DocSimpleSectSep & )
inline

Definition at line 243 of file printdocvisitor.h.

244 {
245 indent_leaf();
246 printf("<simplesectsep/>");
247 }

References indent_leaf().

◆ operator()() [48/57]

void PrintDocVisitor::operator() ( const DocStyleChange & s)
inline

Definition at line 97 of file printdocvisitor.h.

98 {
100 switch (s.style())
101 {
103 if (s.enable()) printf("<bold>"); else printf("</bold>");
104 break;
106 if (s.enable()) printf("<s>"); else printf("</s>");
107 break;
109 if (s.enable()) printf("<strike>"); else printf("</strike>");
110 break;
112 if (s.enable()) printf("<del>"); else printf("</del>");
113 break;
115 if (s.enable()) printf("<underline>"); else printf("</underline>");
116 break;
118 if (s.enable()) printf("<ins>"); else printf("</ins>");
119 break;
121 if (s.enable()) printf("<italic>"); else printf("</italic>");
122 break;
124 if (s.enable()) printf("<code>"); else printf("</code>");
125 break;
127 if (s.enable()) printf("<sub>"); else printf("</sub>");
128 break;
130 if (s.enable()) printf("<sup>"); else printf("</sup>");
131 break;
133 if (s.enable()) printf("<center>"); else printf("</center>");
134 break;
136 if (s.enable()) printf("<small>"); else printf("</small>");
137 break;
139 if (s.enable()) printf("<cite>"); else printf("</cite>");
140 break;
142 if (s.enable()) printf("<pre>"); else printf("</pre>");
143 break;
145 if (s.enable()) printf("<div>"); else printf("</div>");
146 break;
148 if (s.enable()) printf("<span>"); else printf("</span>");
149 break;
150 }
151 }
Style style() const
Definition docnode.h:290
bool enable() const
Definition docnode.h:292

References DocStyleChange::Bold, DocStyleChange::Center, DocStyleChange::Cite, DocStyleChange::Code, DocStyleChange::Del, DocStyleChange::Div, DocStyleChange::enable(), indent_leaf(), DocStyleChange::Ins, DocStyleChange::Italic, DocStyleChange::Preformatted, DocStyleChange::S, DocStyleChange::Small, DocStyleChange::Span, DocStyleChange::Strike, DocStyleChange::style(), DocStyleChange::Subscript, DocStyleChange::Superscript, and DocStyleChange::Underline.

◆ operator()() [49/57]

void PrintDocVisitor::operator() ( const DocSymbol & s)
inline

Definition at line 56 of file printdocvisitor.h.

57 {
59 const char *res = HtmlEntityMapper::instance().utf8(s.symbol(),TRUE);
60 if (res)
61 {
62 printf("%s",res);
63 }
64 else
65 {
66 printf("print: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance().html(s.symbol(),TRUE));
67 }
68 }
HtmlEntityMapper::SymType symbol() const
Definition docnode.h:311
static HtmlEntityMapper & instance()
Returns the one and only instance of the HTML entity mapper.
const char * utf8(SymType symb, bool useInPrintf=FALSE) const
Access routine to the UTF8 code of the HTML entity.

References indent_leaf(), HtmlEntityMapper::instance(), DocSymbol::symbol(), TRUE, and HtmlEntityMapper::utf8().

◆ operator()() [50/57]

void PrintDocVisitor::operator() ( const DocText & t)
inline

Definition at line 692 of file printdocvisitor.h.

693 {
694 indent_pre();
695 printf("<text>\n");
696 visitChildren(t);
697 indent_post();
698 printf("</text>\n");
699 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [51/57]

void PrintDocVisitor::operator() ( const DocTitle & t)
inline

Definition at line 366 of file printdocvisitor.h.

367 {
368 indent_pre();
369 printf("<title>\n");
370 visitChildren(t);
371 indent_post();
372 printf("</title>\n");
373 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [52/57]

void PrintDocVisitor::operator() ( const DocURL & u)
inline

Definition at line 82 of file printdocvisitor.h.

83 {
85 printf("%s",qPrint(u.url()));
86 }
QCString url() const
Definition docnode.h:190

References indent_leaf(), qPrint(), and DocURL::url().

◆ operator()() [53/57]

void PrintDocVisitor::operator() ( const DocVerbatim & s)
inline

Definition at line 152 of file printdocvisitor.h.

153 {
154 indent_leaf();
155 switch(s.type())
156 {
157 case DocVerbatim::Code: printf("<code>"); break;
158 case DocVerbatim::Verbatim: printf("<verbatim>"); break;
159 case DocVerbatim::JavaDocLiteral: printf("<javadocliteral>"); break;
160 case DocVerbatim::JavaDocCode: printf("<javadoccode>"); break;
161 case DocVerbatim::HtmlOnly: printf("<htmlonly>"); break;
162 case DocVerbatim::RtfOnly: printf("<rtfonly>"); break;
163 case DocVerbatim::ManOnly: printf("<manonly>"); break;
164 case DocVerbatim::LatexOnly: printf("<latexonly>"); break;
165 case DocVerbatim::XmlOnly: printf("<xmlonly>"); break;
166 case DocVerbatim::DocbookOnly: printf("<docbookonly>"); break;
167 case DocVerbatim::Dot: printf("<dot>"); break;
168 case DocVerbatim::Msc: printf("<msc>"); break;
169 case DocVerbatim::PlantUML: printf("<plantuml>"); break;
170 }
171 printf("%s",qPrint(s.text()));
172 switch(s.type())
173 {
174 case DocVerbatim::Code: printf("</code>"); break;
175 case DocVerbatim::Verbatim: printf("</verbatim>"); break;
176 case DocVerbatim::JavaDocLiteral: printf("</javadocliteral>"); break;
177 case DocVerbatim::JavaDocCode: printf("</javadoccode>"); break;
178 case DocVerbatim::HtmlOnly: printf("</htmlonly>"); break;
179 case DocVerbatim::RtfOnly: printf("</rtfonly>"); break;
180 case DocVerbatim::ManOnly: printf("</manonly>"); break;
181 case DocVerbatim::LatexOnly: printf("</latexonly>"); break;
182 case DocVerbatim::XmlOnly: printf("</xmlonly>"); break;
183 case DocVerbatim::DocbookOnly: printf("</docbookonly>"); break;
184 case DocVerbatim::Dot: printf("</dot>"); break;
185 case DocVerbatim::Msc: printf("</msc>"); break;
186 case DocVerbatim::PlantUML: printf("</plantuml>"); break;
187 }
188 }
Type type() const
Definition docnode.h:361
QCString text() const
Definition docnode.h:362
@ JavaDocLiteral
Definition docnode.h:357

References DocVerbatim::Code, DocVerbatim::DocbookOnly, DocVerbatim::Dot, DocVerbatim::HtmlOnly, indent_leaf(), DocVerbatim::JavaDocCode, DocVerbatim::JavaDocLiteral, DocVerbatim::LatexOnly, DocVerbatim::ManOnly, DocVerbatim::Msc, DocVerbatim::PlantUML, qPrint(), DocVerbatim::RtfOnly, DocVerbatim::text(), DocVerbatim::type(), DocVerbatim::Verbatim, and DocVerbatim::XmlOnly.

◆ operator()() [54/57]

void PrintDocVisitor::operator() ( const DocVhdlFlow & vf)
inline

Definition at line 708 of file printdocvisitor.h.

709 {
710 indent_pre();
711 printf("<vhdlflow>\n");
712 visitChildren(vf);
713 indent_post();
714 printf("</vhdlflow>\n");
715 }

References indent_post(), indent_pre(), and visitChildren().

◆ operator()() [55/57]

void PrintDocVisitor::operator() ( const DocWhiteSpace & w)
inline

Definition at line 44 of file printdocvisitor.h.

45 {
47 if (m_insidePre)
48 {
49 printf("%s",qPrint(w.chars()));
50 }
51 else
52 {
53 printf(" ");
54 }
55 }
QCString chars() const
Definition docnode.h:337

References DocWhiteSpace::chars(), indent_leaf(), m_insidePre, and qPrint().

◆ operator()() [56/57]

void PrintDocVisitor::operator() ( const DocWord & w)
inline

Definition at line 34 of file printdocvisitor.h.

35 {
37 printf("%s",qPrint(w.word()));
38 }
QCString word() const
Definition docnode.h:154

References indent_leaf(), qPrint(), and DocWord::word().

◆ operator()() [57/57]

void PrintDocVisitor::operator() ( const DocXRefItem & x)
inline

Definition at line 675 of file printdocvisitor.h.

676 {
677 indent_pre();
678 printf("<xrefitem file=\"%s\" anchor=\"%s\" title=\"%s\">\n",
679 qPrint(x.file()),qPrint(x.anchor()),qPrint(x.title()));
680 visitChildren(x);
681 indent_post();
682 printf("</xrefitem>\n");
683 }
QCString anchor() const
Definition docnode.h:596
QCString file() const
Definition docnode.h:595
QCString title() const
Definition docnode.h:597

References DocXRefItem::anchor(), DocXRefItem::file(), indent_post(), indent_pre(), qPrint(), DocXRefItem::title(), and visitChildren().

◆ visitChildren()

Member Data Documentation

◆ m_indent

int PrintDocVisitor::m_indent
private

Definition at line 750 of file printdocvisitor.h.

Referenced by indent(), indent_post(), and indent_pre().

◆ m_insidePre

bool PrintDocVisitor::m_insidePre
private

Definition at line 752 of file printdocvisitor.h.

Referenced by operator()().

◆ m_needsEnter

bool PrintDocVisitor::m_needsEnter
private

Definition at line 751 of file printdocvisitor.h.

Referenced by indent(), and indent_leaf().


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