1 /******************************************************************************
6 * Copyright (C) 1997-2015 by Dimitri van Heesch.
8 * Permission to use, copy, modify, and distribute this software and its
9 * documentation under the terms of the GNU General Public License is hereby
10 * granted. No representations are made about the suitability of this software
11 * for any purpose. It is provided "as is" without express or implied warranty.
12 * See the GNU General Public License for more details.
14 * Documents produced by Doxygen are derivative works derived from the
15 * input used in their production; they are not affected by this license.
19 #ifndef _TEXTDOCVISITOR_H
20 #define _TEXTDOCVISITOR_H
22 #include "docvisitor.h"
23 #include "docparser.h"
26 #include "ftextstream.h"
29 /*! @brief Concrete visitor implementation for TEXT output. */
30 class TextDocVisitor : public DocVisitor
33 TextDocVisitor(FTextStream &t) : DocVisitor(DocVisitor_Text), m_t(t) {}
35 //--------------------------------------
36 // visitor functions for leaf nodes
37 //--------------------------------------
39 void visit(DocWord *w) { filter(w->word()); }
40 void visit(DocLinkedWord *w) { filter(w->word()); }
41 void visit(DocWhiteSpace *) { m_t << " "; }
42 void visit(DocSymbol *);
43 void visit(DocEmoji *);
44 void visit(DocURL *u) { filter(u->url()); }
45 void visit(DocLineBreak *) { m_t << " "; }
46 void visit(DocHorRuler *) {}
47 void visit(DocStyleChange *) {}
48 void visit(DocVerbatim *s) { filter(s->text()); }
49 void visit(DocAnchor *) {}
50 void visit(DocInclude *) {}
51 void visit(DocIncOperator *) {}
52 void visit(DocFormula *) {}
53 void visit(DocIndexEntry *) {}
54 void visit(DocSimpleSectSep *){}
55 void visit(DocCite *) {}
57 //--------------------------------------
58 // visitor functions for compound nodes
59 //--------------------------------------
61 void visitPre(DocAutoList *) {}
62 void visitPost(DocAutoList *) {}
63 void visitPre(DocAutoListItem *) {}
64 void visitPost(DocAutoListItem *) {}
65 void visitPre(DocPara *) {}
66 void visitPost(DocPara *) {}
67 void visitPre(DocRoot *) {}
68 void visitPost(DocRoot *) {}
69 void visitPre(DocSimpleSect *) {}
70 void visitPost(DocSimpleSect *) {}
71 void visitPre(DocTitle *) {}
72 void visitPost(DocTitle *) {}
73 void visitPre(DocSimpleList *) {}
74 void visitPost(DocSimpleList *) {}
75 void visitPre(DocSimpleListItem *) {}
76 void visitPost(DocSimpleListItem *) {}
77 void visitPre(DocSection *) {}
78 void visitPost(DocSection *) {}
79 void visitPre(DocHtmlList *) {}
80 void visitPost(DocHtmlList *) {}
81 void visitPre(DocHtmlListItem *) {}
82 void visitPost(DocHtmlListItem *) {}
83 void visitPre(DocHtmlDescList *) {}
84 void visitPost(DocHtmlDescList *) {}
85 void visitPre(DocHtmlDescTitle *) {}
86 void visitPost(DocHtmlDescTitle *) {}
87 void visitPre(DocHtmlDescData *) {}
88 void visitPost(DocHtmlDescData *) {}
89 void visitPre(DocHtmlTable *) {}
90 void visitPost(DocHtmlTable *) {}
91 void visitPre(DocHtmlRow *) {}
92 void visitPost(DocHtmlRow *) {}
93 void visitPre(DocHtmlCell *) {}
94 void visitPost(DocHtmlCell *) {}
95 void visitPre(DocHtmlCaption *) {}
96 void visitPost(DocHtmlCaption *) {}
97 void visitPre(DocInternal *) {}
98 void visitPost(DocInternal *) {}
99 void visitPre(DocHRef *) {}
100 void visitPost(DocHRef *) {}
101 void visitPre(DocHtmlHeader *) {}
102 void visitPost(DocHtmlHeader *) {}
103 void visitPre(DocImage *) {}
104 void visitPost(DocImage *) {}
105 void visitPre(DocDotFile *) {}
106 void visitPost(DocDotFile *) {}
108 void visitPre(DocMscFile *) {}
109 void visitPost(DocMscFile *) {}
110 void visitPre(DocDiaFile *) {}
111 void visitPost(DocDiaFile *) {}
112 void visitPre(DocLink *) {}
113 void visitPost(DocLink *) {}
114 void visitPre(DocRef *) {}
115 void visitPost(DocRef *) {}
116 void visitPre(DocSecRefItem *) {}
117 void visitPost(DocSecRefItem *) {}
118 void visitPre(DocSecRefList *) {}
119 void visitPost(DocSecRefList *) {}
120 void visitPre(DocParamSect *) {}
121 void visitPost(DocParamSect *) {}
122 void visitPre(DocParamList *) {}
123 void visitPost(DocParamList *) {}
124 void visitPre(DocXRefItem *) {}
125 void visitPost(DocXRefItem *) {}
126 void visitPre(DocInternalRef *) {}
127 void visitPost(DocInternalRef *) {}
128 void visitPre(DocCopy *) {}
129 void visitPost(DocCopy *) {}
130 void visitPre(DocText *) {}
131 void visitPost(DocText *) {}
132 void visitPre(DocHtmlBlockQuote *) {}
133 void visitPost(DocHtmlBlockQuote *) {}
134 void visitPre(DocVhdlFlow *) {}
135 void visitPost(DocVhdlFlow *) {}
136 void visitPre(DocParBlock *) {}
137 void visitPost(DocParBlock *) {}
141 void filter(const char *str);