Doxygen
Loading...
Searching...
No Matches
textdocvisitor.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2026 by Dimitri van Heesch.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
10 *
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
13 *
14 */
15
16#ifndef TEXTDOCVISITOR_H
17#define TEXTDOCVISITOR_H
18
19#include "docvisitor.h"
20#include "docnode.h"
21#include "textstream.h"
22
23/*! @brief Concrete visitor implementation for TEXT output. */
24class TextDocVisitor final : public DocVisitor
25{
26 public:
28
29 //--------------------------------------
30 // visitor functions for leaf nodes
31 //--------------------------------------
32
33 void operator()(const DocWord &w) { filter(w.word()); }
34 void operator()(const DocLinkedWord &w) { filter(w.word()); }
35 void operator()(const DocWhiteSpace &) { m_t << " "; }
36 void operator()(const DocSymbol &);
37 void operator()(const DocEmoji &);
38 void operator()(const DocURL &u) { filter(u.url()); }
39 void operator()(const DocLineBreak &) { m_t << " "; }
40 void operator()(const DocHorRuler &) {}
41 void operator()(const DocStyleChange &) {}
42 void operator()(const DocVerbatim &s) { filter(s.text()); }
43 void operator()(const DocAnchor &) {}
44 void operator()(const DocInclude &) {}
45 void operator()(const DocIncOperator &) {}
46 void operator()(const DocFormula &) {}
47 void operator()(const DocIndexEntry &) {}
49 void operator()(const DocCite &);
50 void operator()(const DocSeparator &) { m_t << " "; }
51
52 //--------------------------------------
53 // visitor functions for compound nodes
54 //--------------------------------------
55
56 template<class T>
57 void visitChildren(const T &t)
58 {
59 for (const auto &child : t.children())
60 {
61 std::visit(*this, child);
62 }
63 }
64 void operator()(const DocAutoList &l) { visitChildren(l); }
65 void operator()(const DocAutoListItem &li) { visitChildren(li); }
66 void operator()(const DocPara &p) { visitChildren(p); }
67 void operator()(const DocRoot &r) { visitChildren(r); }
68 void operator()(const DocSimpleSect &s) { visitChildren(s); }
69 void operator()(const DocTitle &t) { visitChildren(t); }
70 void operator()(const DocSimpleList &l) { visitChildren(l); }
71 void operator()(const DocSimpleListItem &) { }
72 void operator()(const DocSection &s) { visitChildren(s); }
73 void operator()(const DocHtmlList &l) { visitChildren(l); }
74 void operator()(const DocHtmlListItem &li) { visitChildren(li); }
75 void operator()(const DocHtmlDescList &dl) { visitChildren(dl); }
76 void operator()(const DocHtmlDescTitle &dt) { visitChildren(dt); }
77 void operator()(const DocHtmlDescData &dd) { visitChildren(dd); }
78 void operator()(const DocHtmlTable &t) { visitChildren(t); }
79 void operator()(const DocHtmlRow &r) { visitChildren(r); }
80 void operator()(const DocHtmlCell &c) { visitChildren(c); }
82 void operator()(const DocInternal &i) { visitChildren(i); }
83 void operator()(const DocHRef &h) { visitChildren(h); }
86 void operator()(const DocHtmlHeader &h) { visitChildren(h); }
87 void operator()(const DocImage &i) { visitChildren(i); }
88 void operator()(const DocDotFile &df) { visitChildren(df); }
89 void operator()(const DocMscFile &df) { visitChildren(df); }
90 void operator()(const DocDiaFile &df) { visitChildren(df); }
91 void operator()(const DocPlantUmlFile &df) { visitChildren(df); }
92 void operator()(const DocMermaidFile &df) { visitChildren(df); }
93 void operator()(const DocLink &l) { visitChildren(l); }
94 void operator()(const DocRef &r) { visitChildren(r); }
95 void operator()(const DocSecRefItem &s) { visitChildren(s); }
96 void operator()(const DocSecRefList &l) { visitChildren(l); }
97 void operator()(const DocParamSect &s) { visitChildren(s); }
98 void operator()(const DocParamList &) { }
99 void operator()(const DocXRefItem &x) { visitChildren(x); }
101 void operator()(const DocText &t) { visitChildren(t); }
103 void operator()(const DocVhdlFlow &) { }
104 void operator()(const DocParBlock &pb) { visitChildren(pb); }
105
106 private:
107
108 void filter(const DString &str);
109
111};
112
113#endif
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:88
Node representing an anchor.
Definition docnode.h:229
Node representing an auto List.
Definition docnode.h:571
Node representing an item of a auto list.
Definition docnode.h:595
Node representing a citation of some bibliographic reference.
Definition docnode.h:245
Node representing a dia file.
Definition docnode.h:731
Node representing a dot file.
Definition docnode.h:713
Node representing an emoji.
Definition docnode.h:341
Node representing an item of a cross-referenced list.
Definition docnode.h:529
Node representing a Hypertext reference.
Definition docnode.h:832
Node representing a horizontal ruler.
Definition docnode.h:216
Node representing an HTML blockquote.
Definition docnode.h:1296
Node representing a HTML table caption.
Definition docnode.h:1233
Node representing a HTML table cell.
Definition docnode.h:1198
Node representing a HTML description data.
Definition docnode.h:1186
Node representing a Html description list.
Definition docnode.h:910
Node representing a Html description item.
Definition docnode.h:897
Node Html details.
Definition docnode.h:866
Node Html heading.
Definition docnode.h:882
Node representing a Html list.
Definition docnode.h:1009
Node representing a HTML list item.
Definition docnode.h:1170
Node representing a HTML table row.
Definition docnode.h:1251
Node Html summary.
Definition docnode.h:853
Node representing a HTML table.
Definition docnode.h:1274
Node representing an image.
Definition docnode.h:642
Node representing a include/dontinclude operator block.
Definition docnode.h:477
Node representing an included text block from file.
Definition docnode.h:435
Node representing an entry in the index.
Definition docnode.h:552
Node representing an internal section of documentation.
Definition docnode.h:978
Node representing an internal reference to some item.
Definition docnode.h:816
Node representing a line break.
Definition docnode.h:202
Node representing a word that can be linked to something.
Definition docnode.h:165
DString word() const
Definition docnode.h:170
Node representing a mermaid file.
Definition docnode.h:749
Node representing a msc file.
Definition docnode.h:722
Node representing an block of paragraphs.
Definition docnode.h:988
Node representing a paragraph in the documentation tree.
Definition docnode.h:1089
Node representing a parameter list.
Definition docnode.h:1130
Node representing a parameter section.
Definition docnode.h:1062
Node representing a uml file.
Definition docnode.h:740
Node representing a reference to some item.
Definition docnode.h:787
Root node of documentation tree.
Definition docnode.h:1318
Node representing a reference to a section.
Definition docnode.h:944
Node representing a list of section references.
Definition docnode.h:968
Node representing a normal section.
Definition docnode.h:923
Node representing a separator.
Definition docnode.h:365
Node representing a simple list.
Definition docnode.h:999
Node representing a simple list item.
Definition docnode.h:1158
Node representing a simple section.
Definition docnode.h:1026
Node representing a separator between two simple sections of the same type.
Definition docnode.h:1053
Node representing a style change.
Definition docnode.h:268
Node representing a special symbol.
Definition docnode.h:328
Root node of a text fragment.
Definition docnode.h:1309
Node representing a simple section title.
Definition docnode.h:608
Node representing a URL (or email address).
Definition docnode.h:188
DString url() const
Definition docnode.h:192
Node representing a verbatim, unparsed text fragment.
Definition docnode.h:376
DString text() const
Definition docnode.h:383
Node representing a VHDL flow chart.
Definition docnode.h:758
Node representing some amount of white space.
Definition docnode.h:354
Node representing a word.
Definition docnode.h:153
DString word() const
Definition docnode.h:156
Node representing an item of a cross-referenced list.
Definition docnode.h:621
void filter(const DString &str)
void operator()(const DocHtmlBlockQuote &q)
void operator()(const DocMermaidFile &df)
void operator()(const DocHtmlDescTitle &dt)
void operator()(const DocParamSect &s)
void operator()(const DocInclude &)
void operator()(const DocHtmlDetails &d)
void operator()(const DocPlantUmlFile &df)
void operator()(const DocPara &p)
void operator()(const DocAutoListItem &li)
void operator()(const DocSimpleSect &s)
void operator()(const DocURL &u)
void operator()(const DocHtmlCell &c)
void operator()(const DocIndexEntry &)
void operator()(const DocLink &l)
void operator()(const DocHtmlSummary &s)
void operator()(const DocXRefItem &x)
void operator()(const DocStyleChange &)
void operator()(const DocWhiteSpace &)
void operator()(const DocDotFile &df)
void operator()(const DocLineBreak &)
void operator()(const DocAutoList &l)
void operator()(const DocSeparator &)
void operator()(const DocInternal &i)
void operator()(const DocHtmlList &l)
void operator()(const DocParamList &)
void operator()(const DocIncOperator &)
void operator()(const DocFormula &)
TextStream & m_t
void operator()(const DocTitle &t)
TextDocVisitor(TextStream &t)
void operator()(const DocSimpleListItem &)
void visitChildren(const T &t)
void operator()(const DocVerbatim &s)
void operator()(const DocHtmlHeader &h)
void operator()(const DocSecRefList &l)
void operator()(const DocHtmlRow &r)
void operator()(const DocSection &s)
void operator()(const DocMscFile &df)
void operator()(const DocInternalRef &r)
void operator()(const DocHtmlListItem &li)
void operator()(const DocDiaFile &df)
void operator()(const DocRef &r)
void operator()(const DocHorRuler &)
void operator()(const DocSimpleList &l)
void operator()(const DocHtmlCaption &c)
void operator()(const DocParBlock &pb)
void operator()(const DocHtmlDescData &dd)
void operator()(const DocWord &w)
void operator()(const DocVhdlFlow &)
void operator()(const DocAnchor &)
void operator()(const DocRoot &r)
void operator()(const DocSimpleSectSep &)
void operator()(const DocHRef &h)
void operator()(const DocText &t)
void operator()(const DocLinkedWord &w)
void operator()(const DocHtmlTable &t)
void operator()(const DocHtmlDescList &dl)
void operator()(const DocSecRefItem &s)
void operator()(const DocImage &i)
Text streaming class that buffers data.
Definition textstream.h:36