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 DocPlantUmlFile &df)
void operator() (const DocMermaidFile &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 25 of file printdocvisitor.h.

Constructor & Destructor Documentation

◆ PrintDocVisitor()

PrintDocVisitor::PrintDocVisitor ( )
inline

Definition at line 28 of file printdocvisitor.h.

References m_indent, m_insidePre, and m_needsEnter.

Member Function Documentation

◆ indent()

void PrintDocVisitor::indent ( )
inlineprivate

Definition at line 760 of file printdocvisitor.h.

761 {
762 if (m_needsEnter) printf("\n");
763 for (int i=0;i<m_indent;i++) printf(".");
764 m_needsEnter=false;
765 }

References m_indent, and m_needsEnter.

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

◆ indent_leaf()

◆ indent_post()

◆ indent_pre()

◆ operator()() [1/59]

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

Definition at line 195 of file printdocvisitor.h.

196 {
197 indent_leaf();
198 printf("<anchor name=\"%s\"/>",qPrint(a.anchor()));
199 }
DString anchor() const
Definition docnode.h:232
const char * qPrint(const char *s)
Definition dstring.h:787

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

◆ operator()() [2/59]

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

Definition at line 290 of file printdocvisitor.h.

291 {
292 indent_pre();
293 if (l.isEnumList())
294 {
295 printf("<ol>\n");
296 }
297 else
298 {
299 printf("<ul>\n");
300 }
301 visitChildren(l);
302 indent_post();
303 if (l.isEnumList())
304 {
305 printf("</ol>\n");
306 }
307 else
308 {
309 printf("</ul>\n");
310 }
311 }
bool isEnumList() const
Definition docnode.h:580
void visitChildren(const T &t)

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

◆ operator()() [3/59]

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

Definition at line 312 of file printdocvisitor.h.

313 {
314 indent_pre();
315 switch (li.itemNumber())
316 {
317 case DocAutoList::Unchecked: // unchecked
318 printf("<li class=\"unchecked\">\n");
319 break;
320 case DocAutoList::Checked_x: // checked with x
321 case DocAutoList::Checked_X: // checked with X
322 printf("<li class=\"checked\">\n");
323 break;
324 default:
325 printf("<li>\n");
326 break;
327 }
328 visitChildren(li);
329 indent_post();
330 printf("</li>\n");
331 }
int itemNumber() const
Definition docnode.h:598

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

◆ operator()() [4/59]

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

Definition at line 253 of file printdocvisitor.h.

254 {
255 indent_leaf();
256 auto opt = cite.option();
257 DString txt;
258 if (!cite.file().empty())
259 {
260 txt = cite.getText();
261 }
262 else
263 {
264 if (!opt.noPar()) txt += "[";
265 txt += cite.target();
266 if (!opt.noPar()) txt += "]";
267 }
268 printf("<cite ref=\"%s\" file=\"%s\" "
269 "anchor=\"%s\" text=\"%s\""
270 "/>\n",
271 qPrint(cite.ref()),qPrint(cite.file()),qPrint(cite.anchor()),
272 qPrint(txt));
273 }
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:152
DString ref() const
Definition docnode.h:250
DString getText() const
Definition docnode.cpp:977
DString anchor() const
Definition docnode.h:251
CiteInfoOption option() const
Definition docnode.h:253
DString target() const
Definition docnode.h:252
DString file() const
Definition docnode.h:248

References DocCite::anchor(), DString::empty(), DocCite::file(), DocCite::getText(), indent_leaf(), DocCite::option(), qPrint(), DocCite::ref(), and DocCite::target().

◆ operator()() [5/59]

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

Definition at line 611 of file printdocvisitor.h.

612 {
613 indent_pre();
614 printf("<diafile src=\"%s\">\n",qPrint(df.name()));
615 visitChildren(df);
616 indent_post();
617 printf("</diafile>\n");
618 }
DString name() const
Definition docnode.h:684

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

◆ operator()() [6/59]

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

Definition at line 595 of file printdocvisitor.h.

596 {
597 indent_pre();
598 printf("<dotfile src=\"%s\">\n",qPrint(df.name()));
599 visitChildren(df);
600 indent_post();
601 printf("</dotfile>\n");
602 }

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

◆ operator()() [7/59]

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

Definition at line 67 of file printdocvisitor.h.

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

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

◆ operator()() [8/59]

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

Definition at line 238 of file printdocvisitor.h.

239 {
240 indent_leaf();
241 printf("<formula name=%s text=%s/>",qPrint(f.name()),qPrint(f.text()));
242 }
DString text() const
Definition docnode.h:533
DString name() const
Definition docnode.h:532

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

◆ operator()() [9/59]

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

Definition at line 90 of file printdocvisitor.h.

91 {
93 printf("<hr>");
94 }

References indent_leaf().

◆ operator()() [10/59]

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

Definition at line 531 of file printdocvisitor.h.

532 {
533 indent_pre();
534 printf("<a url=\"%s\">\n",qPrint(href.url()));
535 visitChildren(href);
536 indent_post();
537 printf("</a>\n");
538 }
DString url() const
Definition docnode.h:839

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

◆ operator()() [11/59]

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

Definition at line 733 of file printdocvisitor.h.

734 {
735 indent_pre();
736 printf("<blockquote>\n");
737 visitChildren(q);
738 indent_post();
739 printf("</blockquote>\n");
740 }

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

◆ operator()() [12/59]

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

Definition at line 515 of file printdocvisitor.h.

516 {
517 indent_pre();
518 printf("<caption>\n");
519 visitChildren(c);
520 indent_post();
521 printf("</caption>\n");
522 }

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

◆ operator()() [13/59]

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

Definition at line 507 of file printdocvisitor.h.

508 {
509 indent_pre();
510 printf("<t%c>\n",c.isHeading()?'h':'d');
511 visitChildren(c);
512 indent_post();
513 printf("</t%c>\n",c.isHeading()?'h':'d');
514 }
bool isHeading() const
Definition docnode.h:1205

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

◆ operator()() [14/59]

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

Definition at line 478 of file printdocvisitor.h.

479 {
480 indent_pre();
481 printf("<dd>\n");
482 visitChildren(dd);
483 indent_post();
484 printf("</dd>\n");
485 }

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

◆ operator()() [15/59]

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

Definition at line 462 of file printdocvisitor.h.

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

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

◆ operator()() [16/59]

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

Definition at line 470 of file printdocvisitor.h.

471 {
472 indent_pre();
473 printf("<dt>\n");
474 visitChildren(dt);
475 indent_post();
476 printf("</dt>\n");
477 }

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

◆ operator()() [17/59]

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

Definition at line 552 of file printdocvisitor.h.

553 {
554 indent_pre();
555 printf("<details");
556 for (const auto &opt : details.attribs())
557 {
558 printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
559 }
560 printf(">\n");
561 auto summary = details.summary();
562 if (summary)
563 {
564 std::visit(*this,*summary);
565 }
566 visitChildren(details);
567 indent_post();
568 printf("</details>\n");
569 }
const HtmlAttribList & attribs() const
Definition docnode.h:870
const DocNodeVariant * summary() const
Definition docnode.h:873

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

◆ operator()() [18/59]

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

Definition at line 570 of file printdocvisitor.h.

571 {
572 indent_pre();
573 printf("<h%d>\n",header.level());
574 visitChildren(header);
575 indent_post();
576 printf("</h%d>\n",header.level());
577 }
int level() const
Definition docnode.h:886

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

◆ operator()() [19/59]

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

Definition at line 422 of file printdocvisitor.h.

423 {
424 indent_pre();
425 if (s.type()==DocHtmlList::Ordered)
426 {
427 printf("<ol");
428 for (const auto &opt : s.attribs())
429 {
430 printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
431 }
432 printf(">\n");
433 }
434 else
435 {
436 printf("<ul>\n");
437 }
438 visitChildren(s);
439 indent_post();
440 if (s.type()==DocHtmlList::Ordered)
441 {
442 printf("</ol>\n");
443 }
444 else
445 {
446 printf("</ul>\n");
447 }
448 }
const HtmlAttribList & attribs() const
Definition docnode.h:1015
Type type() const
Definition docnode.h:1014

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

◆ operator()() [20/59]

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

Definition at line 449 of file printdocvisitor.h.

450 {
451 indent_pre();
452 printf("<li");
453 for (const auto &opt : li.attribs())
454 {
455 printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
456 }
457 printf(">\n");
458 visitChildren(li);
459 indent_post();
460 printf("</li>\n");
461 }
const HtmlAttribList & attribs() const
Definition docnode.h:1175

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

◆ operator()() [21/59]

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

Definition at line 499 of file printdocvisitor.h.

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

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

◆ operator()() [22/59]

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

Definition at line 539 of file printdocvisitor.h.

540 {
541 indent_pre();
542 printf("<summary");
543 for (const auto &opt : summary.attribs())
544 {
545 printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
546 }
547 printf(">\n");
548 visitChildren(summary);
549 indent_post();
550 printf("</summary>\n");
551 }
const HtmlAttribList & attribs() const
Definition docnode.h:857

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

◆ operator()() [23/59]

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

Definition at line 486 of file printdocvisitor.h.

487 {
488 indent_pre();
489 printf("<table rows=\"%zu\" cols=\"%zu\">\n",
490 t.numRows(),t.numColumns());
491 visitChildren(t);
492 if (t.caption())
493 {
494 std::visit(*this, *t.caption());
495 }
496 indent_post();
497 printf("</table>\n");
498 }
size_t numRows() const
Definition docnode.h:1278
size_t numColumns() const
Definition docnode.h:1283
const DocNodeVariant * caption() const
Definition docnode.cpp:2253

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

◆ operator()() [24/59]

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

Definition at line 578 of file printdocvisitor.h.

579 {
580 indent_pre();
581 printf("<image src=\"%s\" type=\"",qPrint(img.name()));
582 switch(img.type())
583 {
584 case DocImage::Html: printf("html"); break;
585 case DocImage::Latex: printf("latex"); break;
586 case DocImage::Rtf: printf("rtf"); break;
587 case DocImage::DocBook: printf("docbook"); break;
588 case DocImage::Xml: printf("xml"); break;
589 }
590 printf("\" %s %s inline=\"%s\">\n",qPrint(img.width()),qPrint(img.height()),img.isInlineImage() ? "yes" : "no");
591 visitChildren(img);
592 indent_post();
593 printf("</image>\n");
594 }
Type type() const
Definition docnode.h:647
DString width() const
Definition docnode.h:650
DString name() const
Definition docnode.h:648
@ DocBook
Definition docnode.h:644
bool isInlineImage() const
Definition docnode.h:654
DString height() const
Definition docnode.h:651

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/59]

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

Definition at line 200 of file printdocvisitor.h.

201 {
202 indent_leaf();
203 printf("<include file=\"%s\" type=\"",qPrint(inc.file()));
204 switch(inc.type())
205 {
206 case DocInclude::Include: printf("include"); break;
207 case DocInclude::IncWithLines: printf("incwithlines"); break;
208 case DocInclude::DontInclude: printf("dontinclude"); break;
209 case DocInclude::DontIncWithLines: printf("dontinwithlines"); break;
211 printf("htmlinclude");
212 if (inc.isBlock()) printf(" block=\"yes\"");
213 break;
214 case DocInclude::LatexInclude: printf("latexinclude"); break;
215 case DocInclude::RtfInclude: printf("rtfinclude"); break;
216 case DocInclude::DocbookInclude: printf("docbookinclude"); break;
217 case DocInclude::ManInclude: printf("maninclude"); break;
218 case DocInclude::XmlInclude: printf("xmlinclude"); break;
219 case DocInclude::VerbInclude: printf("verbinclude"); break;
220 case DocInclude::Snippet: printf("snippet"); break;
221 case DocInclude::SnippetWithLines: printf("snipwithlines"); break;
222 }
223 printf("\"/>");
224 }
bool isBlock() const
Definition docnode.h:458
@ LatexInclude
Definition docnode.h:437
@ SnippetWithLines
Definition docnode.h:438
@ DontIncWithLines
Definition docnode.h:439
@ IncWithLines
Definition docnode.h:438
@ HtmlInclude
Definition docnode.h:437
@ VerbInclude
Definition docnode.h:437
@ DontInclude
Definition docnode.h:437
@ DocbookInclude
Definition docnode.h:439
Type type() const
Definition docnode.h:451
DString file() const
Definition docnode.h:449

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::SnippetWithLines, DocInclude::type(), DocInclude::VerbInclude, and DocInclude::XmlInclude.

◆ operator()() [26/59]

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

Definition at line 225 of file printdocvisitor.h.

226 {
227 indent_leaf();
228 printf("<incoperator pattern=\"%s\" type=\"",qPrint(op.pattern()));
229 switch(op.type())
230 {
231 case DocIncOperator::Line: printf("line"); break;
232 case DocIncOperator::Skip: printf("skip"); break;
233 case DocIncOperator::SkipLine: printf("skipline"); break;
234 case DocIncOperator::Until: printf("until"); break;
235 }
236 printf("\"/>");
237 }
DString pattern() const
Definition docnode.h:500
Type type() const
Definition docnode.h:485

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

◆ operator()() [27/59]

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

Definition at line 243 of file printdocvisitor.h.

244 {
245 indent_leaf();
246 printf("<indexentry>%s</indexentry\n",qPrint(i.entry()));
247 }
DString entry() const
Definition docnode.h:559

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

◆ operator()() [28/59]

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

Definition at line 523 of file printdocvisitor.h.

524 {
525 indent_pre();
526 printf("<internal>\n");
527 visitChildren(i);
528 indent_post();
529 printf("</internal>\n");
530 }

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

◆ operator()() [29/59]

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

Definition at line 717 of file printdocvisitor.h.

718 {
719 indent_pre();
720 printf("<internalref file=%s anchor=%s>\n",qPrint(r.file()),qPrint(r.anchor()));
721 visitChildren(r);
722 indent_post();
723 printf("</internalref>\n");
724 }
DString anchor() const
Definition docnode.h:822
DString file() const
Definition docnode.h:820

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

◆ operator()() [30/59]

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

Definition at line 85 of file printdocvisitor.h.

86 {
88 printf("<br/>");
89 }

References indent_leaf().

◆ operator()() [31/59]

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

Definition at line 635 of file printdocvisitor.h.

636 {
637 indent_pre();
638 printf("<link ref=\"%s\" file=\"%s\" anchor=\"%s\">\n",
639 qPrint(lnk.ref()),qPrint(lnk.file()),qPrint(lnk.anchor()));
640 visitChildren(lnk);
641 indent_post();
642 printf("</link>\n");
643 }

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

◆ operator()() [32/59]

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

Definition at line 37 of file printdocvisitor.h.

38 {
40 printf("%s",qPrint(w.word()));
41 }
DString word() const
Definition docnode.h:170

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

◆ operator()() [33/59]

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

Definition at line 627 of file printdocvisitor.h.

628 {
629 indent_pre();
630 printf("<mermaidfile src=\"%s\">\n",qPrint(df.name()));
631 visitChildren(df);
632 indent_post();
633 printf("</mermaidfile>\n");
634 }

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

◆ operator()() [34/59]

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

Definition at line 603 of file printdocvisitor.h.

604 {
605 indent_pre();
606 printf("<mscfile src=\"%s\">\n",qPrint(df.name()));
607 visitChildren(df);
608 indent_post();
609 printf("</mscfile>\n");
610 }

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

◆ operator()() [35/59]

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

Definition at line 332 of file printdocvisitor.h.

333 {
334 indent_pre();
335 printf("<para>\n");
336 visitChildren(p);
337 indent_post();
338 printf("</para>\n");
339 }

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

◆ operator()() [36/59]

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

Definition at line 674 of file printdocvisitor.h.

675 {
676 indent_pre();
677 printf("<parameters>");
678 if (!pl.parameters().empty())
679 {
680 printf("<param>");
681 for (const auto &param : pl.parameters())
682 {
683 std::visit(*this,param);
684 }
685 printf("</param>");
686 }
687 printf("\n");
688 indent_post();
689 printf("</parameters>\n");
690 }
const DocNodeList & parameters() const
Definition docnode.h:1134
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()() [37/59]

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

Definition at line 691 of file printdocvisitor.h.

692 {
693 indent_pre();
694 printf("<paramsect type=");
695 switch (ps.type())
696 {
697 case DocParamSect::Param: printf("param"); break;
698 case DocParamSect::RetVal: printf("retval"); break;
699 case DocParamSect::Exception: printf("exception"); break;
700 case DocParamSect::TemplateParam: printf("templateparam"); break;
701 case DocParamSect::Unknown: printf("unknown"); break;
702 }
703 printf(">\n");
704 visitChildren(ps);
705 indent_post();
706 printf("</paramsect>\n");
707 }
Type type() const
Definition docnode.h:1077

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

◆ operator()() [38/59]

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

Definition at line 749 of file printdocvisitor.h.

750 {
751 indent_pre();
752 printf("<parblock>\n");
753 visitChildren(pb);
754 indent_post();
755 printf("</parblock>\n");
756 }

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

◆ operator()() [39/59]

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

Definition at line 619 of file printdocvisitor.h.

620 {
621 indent_pre();
622 printf("<plantumlfile src=\"%s\">\n",qPrint(df.name()));
623 visitChildren(df);
624 indent_post();
625 printf("</plantumlfile>\n");
626 }

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

◆ operator()() [40/59]

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

Definition at line 644 of file printdocvisitor.h.

645 {
646 indent_pre();
647 printf("<ref ref=\"%s\" file=\"%s\" "
648 "anchor=\"%s\" targetTitle=\"%s\""
649 " hasLinkText=\"%s\" refToAnchor=\"%s\" refToSection=\"%s\" refToTable=\"%s\">\n",
650 qPrint(ref.ref()),qPrint(ref.file()),qPrint(ref.anchor()),
651 qPrint(ref.targetTitle()),ref.hasLinkText()?"yes":"no",
652 ref.refToAnchor()?"yes":"no", ref.refToSection()?"yes":"no",
653 ref.refToTable()?"yes":"no");
654 visitChildren(ref);
655 indent_post();
656 printf("</ref>\n");
657 }
DString ref() const
Definition docnode.h:793
DString file() const
Definition docnode.h:791
bool refToTable() const
Definition docnode.h:800
DString anchor() const
Definition docnode.h:794
bool refToAnchor() const
Definition docnode.h:798
bool refToSection() const
Definition docnode.h:799
bool hasLinkText() const
Definition docnode.h:797
DString targetTitle() const
Definition docnode.h:795

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()() [41/59]

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

Definition at line 340 of file printdocvisitor.h.

341 {
342 indent_pre();
343 printf("<root>\n");
344 visitChildren(r);
345 indent_post();
346 printf("</root>\n");
347 }

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

◆ operator()() [42/59]

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

Definition at line 658 of file printdocvisitor.h.

659 {
660 indent_pre();
661 printf("<secrefitem target=\"%s\">\n",qPrint(ref.target()));
662 visitChildren(ref);
663 indent_post();
664 printf("</secrefitem>\n");
665 }
DString target() const
Definition docnode.h:947

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

◆ operator()() [43/59]

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

Definition at line 666 of file printdocvisitor.h.

667 {
668 indent_pre();
669 printf("<secreflist>\n");
670 visitChildren(rl);
671 indent_post();
672 printf("</secreflist>\n");
673 }

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

◆ operator()() [44/59]

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

Definition at line 410 of file printdocvisitor.h.

411 {
412 indent_pre();
413 printf("<sect%d>\n",s.level());
414 if (s.title())
415 {
416 std::visit(*this, *s.title());
417 }
418 visitChildren(s);
419 indent_post();
420 printf("</sect%d>\n",s.level());
421 }
int level() const
Definition docnode.h:927
const DocNodeVariant * title() const
Definition docnode.h:928

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

◆ operator()() [45/59]

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

Definition at line 274 of file printdocvisitor.h.

275 {
276 indent_leaf();
277 printf("<sep/>");
278 }

References indent_leaf().

◆ operator()() [46/59]

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

Definition at line 391 of file printdocvisitor.h.

392 {
393 indent_pre();
394 printf("<ul>\n");
395 visitChildren(l);
396 indent_post();
397 printf("</ul>\n");
398 }

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

◆ operator()() [47/59]

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

Definition at line 399 of file printdocvisitor.h.

400 {
401 indent_pre();
402 printf("<li>\n");
403 if (li.paragraph())
404 {
405 visit(*this,*li.paragraph());
406 }
407 indent_post();
408 printf("</li>\n");
409 }
const DocNodeVariant * paragraph() const
Definition docnode.h:1162

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

◆ operator()() [48/59]

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

Definition at line 348 of file printdocvisitor.h.

349 {
350 indent_pre();
351 printf("<simplesect type=");
352 switch(s.type())
353 {
354 case DocSimpleSect::See: printf("see"); break;
355 case DocSimpleSect::Return: printf("return"); break;
356 case DocSimpleSect::Author: printf("author"); break;
357 case DocSimpleSect::Authors: printf("authors"); break;
358 case DocSimpleSect::Version: printf("version"); break;
359 case DocSimpleSect::Since: printf("since"); break;
360 case DocSimpleSect::Date: printf("date"); break;
361 case DocSimpleSect::Note: printf("note"); break;
362 case DocSimpleSect::Warning: printf("warning"); break;
363 case DocSimpleSect::Pre: printf("pre"); break;
364 case DocSimpleSect::Post: printf("post"); break;
365 case DocSimpleSect::Copyright: printf("copyright"); break;
366 case DocSimpleSect::Invar: printf("invar"); break;
367 case DocSimpleSect::Remark: printf("remark"); break;
368 case DocSimpleSect::Attention: printf("attention"); break;
369 case DocSimpleSect::Important: printf("important"); break;
370 case DocSimpleSect::User: printf("user"); break;
371 case DocSimpleSect::Rcs: printf("rcs"); break;
372 case DocSimpleSect::Unknown: printf("unknown"); break;
373 }
374 printf(">\n");
375 if (s.title())
376 {
377 std::visit(*this, *s.title());
378 }
379 visitChildren(s);
380 indent_post();
381 printf("</simplesect>\n");
382 }
Type type() const
Definition docnode.h:1035
const DocNodeVariant * title() const
Definition docnode.h:1042

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()() [49/59]

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

Definition at line 248 of file printdocvisitor.h.

249 {
250 indent_leaf();
251 printf("<simplesectsep/>");
252 }

References indent_leaf().

◆ operator()() [50/59]

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

Definition at line 95 of file printdocvisitor.h.

96 {
98 switch (s.style())
99 {
101 if (s.enable()) printf("<bold>"); else printf("</bold>");
102 break;
104 if (s.enable()) printf("<s>"); else printf("</s>");
105 break;
107 if (s.enable()) printf("<strike>"); else printf("</strike>");
108 break;
110 if (s.enable()) printf("<del>"); else printf("</del>");
111 break;
113 if (s.enable()) printf("<underline>"); else printf("</underline>");
114 break;
116 if (s.enable()) printf("<ins>"); else printf("</ins>");
117 break;
119 if (s.enable()) printf("<italic>"); else printf("</italic>");
120 break;
122 if (s.enable()) printf("<kbd>"); else printf("</kbd>");
123 break;
125 if (s.enable()) printf("<tt>"); else printf("</tt>");
126 break;
128 if (s.enable()) printf("<code>"); else printf("</code>");
129 break;
131 if (s.enable()) printf("<sub>"); else printf("</sub>");
132 break;
134 if (s.enable()) printf("<sup>"); else printf("</sup>");
135 break;
137 if (s.enable()) printf("<center>"); else printf("</center>");
138 break;
140 if (s.enable()) printf("<small>"); else printf("</small>");
141 break;
143 if (s.enable()) printf("<cite>"); else printf("</cite>");
144 break;
146 if (s.enable()) printf("<pre>"); else printf("</pre>");
147 break;
149 if (s.enable()) printf("<div>"); else printf("</div>");
150 break;
152 if (s.enable()) printf("<span>"); else printf("</span>");
153 break;
154 }
155 }
Style style() const
Definition docnode.h:307
bool enable() const
Definition docnode.h:309

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

◆ operator()() [51/59]

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

Definition at line 54 of file printdocvisitor.h.

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

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

◆ operator()() [52/59]

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

Definition at line 725 of file printdocvisitor.h.

726 {
727 indent_pre();
728 printf("<text>\n");
729 visitChildren(t);
730 indent_post();
731 printf("</text>\n");
732 }

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

◆ operator()() [53/59]

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

Definition at line 383 of file printdocvisitor.h.

384 {
385 indent_pre();
386 printf("<title>\n");
387 visitChildren(t);
388 indent_post();
389 printf("</title>\n");
390 }

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

◆ operator()() [54/59]

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

Definition at line 80 of file printdocvisitor.h.

81 {
83 printf("%s",qPrint(u.url()));
84 }
DString url() const
Definition docnode.h:192

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

◆ operator()() [55/59]

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

Definition at line 156 of file printdocvisitor.h.

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

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

◆ operator()() [56/59]

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

Definition at line 741 of file printdocvisitor.h.

742 {
743 indent_pre();
744 printf("<vhdlflow>\n");
745 visitChildren(vf);
746 indent_post();
747 printf("</vhdlflow>\n");
748 }

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

◆ operator()() [57/59]

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

Definition at line 42 of file printdocvisitor.h.

43 {
45 if (m_insidePre)
46 {
47 printf("%s",qPrint(w.chars()));
48 }
49 else
50 {
51 printf(" ");
52 }
53 }
DString chars() const
Definition docnode.h:358

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

◆ operator()() [58/59]

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

Definition at line 32 of file printdocvisitor.h.

33 {
35 printf("%s",qPrint(w.word()));
36 }
DString word() const
Definition docnode.h:156

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

◆ operator()() [59/59]

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

Definition at line 708 of file printdocvisitor.h.

709 {
710 indent_pre();
711 printf("<xrefitem file=\"%s\" anchor=\"%s\" title=\"%s\">\n",
712 qPrint(x.file()),qPrint(x.anchor()),qPrint(x.title()));
713 visitChildren(x);
714 indent_post();
715 printf("</xrefitem>\n");
716 }
DString anchor() const
Definition docnode.h:625
DString file() const
Definition docnode.h:624
DString title() const
Definition docnode.h:626

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 783 of file printdocvisitor.h.

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

◆ m_insidePre

bool PrintDocVisitor::m_insidePre
private

Definition at line 785 of file printdocvisitor.h.

Referenced by operator()(), and PrintDocVisitor().

◆ m_needsEnter

bool PrintDocVisitor::m_needsEnter
private

Definition at line 784 of file printdocvisitor.h.

Referenced by indent(), indent_leaf(), and PrintDocVisitor().


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