|
1 /****************************************************************************** |
|
2 * |
|
3 * |
|
4 * |
|
5 * |
|
6 * Copyright (C) 1997-2008 by Dimitri van Heesch. |
|
7 * |
|
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. |
|
13 * |
|
14 * Documents produced by Doxygen are derivative works derived from the |
|
15 * input used in their production; they are not affected by this license. |
|
16 * |
|
17 */ |
|
18 |
|
19 #ifndef _TEXTDOCVISITOR_H |
|
20 #define _TEXTDOCVISITOR_H |
|
21 |
|
22 #include "docvisitor.h" |
|
23 #include "docparser.h" |
|
24 #include <qstack.h> |
|
25 #include <qcstring.h> |
|
26 #include <qtextstream.h> |
|
27 |
|
28 |
|
29 /*! @brief Concrete visitor implementation for TEXT output. */ |
|
30 class TextDocVisitor : public DocVisitor |
|
31 { |
|
32 public: |
|
33 TextDocVisitor(QTextStream &t) : DocVisitor(DocVisitor_Text), m_t(t) {} |
|
34 |
|
35 //-------------------------------------- |
|
36 // visitor functions for leaf nodes |
|
37 //-------------------------------------- |
|
38 |
|
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(DocURL *u) { filter(u->url()); } |
|
44 void visit(DocLineBreak *) { m_t << " "; } |
|
45 void visit(DocHorRuler *) {} |
|
46 void visit(DocStyleChange *) {} |
|
47 void visit(DocVerbatim *s) { filter(s->text()); } |
|
48 void visit(DocAnchor *) {} |
|
49 void visit(DocInclude *) {} |
|
50 void visit(DocIncOperator *) {} |
|
51 void visit(DocFormula *) {} |
|
52 void visit(DocIndexEntry *) {} |
|
53 void visit(DocSimpleSectSep *){} |
|
54 |
|
55 //-------------------------------------- |
|
56 // visitor functions for compound nodes |
|
57 //-------------------------------------- |
|
58 |
|
59 void visitPre(DocAutoList *) {} |
|
60 void visitPost(DocAutoList *) {} |
|
61 void visitPre(DocAutoListItem *) {} |
|
62 void visitPost(DocAutoListItem *) {} |
|
63 void visitPre(DocPara *) {} |
|
64 void visitPost(DocPara *) {} |
|
65 void visitPre(DocRoot *) {} |
|
66 void visitPost(DocRoot *) {} |
|
67 void visitPre(DocSimpleSect *) {} |
|
68 void visitPost(DocSimpleSect *) {} |
|
69 void visitPre(DocTitle *) {} |
|
70 void visitPost(DocTitle *) {} |
|
71 void visitPre(DocSimpleList *) {} |
|
72 void visitPost(DocSimpleList *) {} |
|
73 void visitPre(DocSimpleListItem *) {} |
|
74 void visitPost(DocSimpleListItem *) {} |
|
75 void visitPre(DocSection *) {} |
|
76 void visitPost(DocSection *) {} |
|
77 void visitPre(DocHtmlList *) {} |
|
78 void visitPost(DocHtmlList *) {} |
|
79 void visitPre(DocHtmlListItem *) {} |
|
80 void visitPost(DocHtmlListItem *) {} |
|
81 void visitPre(DocHtmlDescList *) {} |
|
82 void visitPost(DocHtmlDescList *) {} |
|
83 void visitPre(DocHtmlDescTitle *) {} |
|
84 void visitPost(DocHtmlDescTitle *) {} |
|
85 void visitPre(DocHtmlDescData *) {} |
|
86 void visitPost(DocHtmlDescData *) {} |
|
87 void visitPre(DocHtmlTable *) {} |
|
88 void visitPost(DocHtmlTable *) {} |
|
89 void visitPre(DocHtmlRow *) {} |
|
90 void visitPost(DocHtmlRow *) {} |
|
91 void visitPre(DocHtmlCell *) {} |
|
92 void visitPost(DocHtmlCell *) {} |
|
93 void visitPre(DocHtmlCaption *) {} |
|
94 void visitPost(DocHtmlCaption *) {} |
|
95 void visitPre(DocInternal *) {} |
|
96 void visitPost(DocInternal *) {} |
|
97 void visitPre(DocHRef *) {} |
|
98 void visitPost(DocHRef *) {} |
|
99 void visitPre(DocHtmlHeader *) {} |
|
100 void visitPost(DocHtmlHeader *) {} |
|
101 void visitPre(DocImage *) {} |
|
102 void visitPost(DocImage *) {} |
|
103 void visitPre(DocDotFile *) {} |
|
104 void visitPost(DocDotFile *) {} |
|
105 void visitPre(DocLink *) {} |
|
106 void visitPost(DocLink *) {} |
|
107 void visitPre(DocRef *) {} |
|
108 void visitPost(DocRef *) {} |
|
109 void visitPre(DocSecRefItem *) {} |
|
110 void visitPost(DocSecRefItem *) {} |
|
111 void visitPre(DocSecRefList *) {} |
|
112 void visitPost(DocSecRefList *) {} |
|
113 void visitPre(DocParamSect *) {} |
|
114 void visitPost(DocParamSect *) {} |
|
115 void visitPre(DocParamList *) {} |
|
116 void visitPost(DocParamList *) {} |
|
117 void visitPre(DocXRefItem *) {} |
|
118 void visitPost(DocXRefItem *) {} |
|
119 void visitPre(DocInternalRef *) {} |
|
120 void visitPost(DocInternalRef *) {} |
|
121 void visitPre(DocCopy *) {} |
|
122 void visitPost(DocCopy *) {} |
|
123 void visitPre(DocText *) {} |
|
124 void visitPost(DocText *) {} |
|
125 |
|
126 private: |
|
127 |
|
128 void filter(const char *str); |
|
129 |
|
130 QTextStream &m_t; |
|
131 }; |
|
132 |
|
133 #endif |