Imported Upstream version 1.8.15
[platform/upstream/doxygen.git] / src / textdocvisitor.h
1 /******************************************************************************
2  *
3  * 
4  *
5  *
6  * Copyright (C) 1997-2015 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 "ftextstream.h"
27
28
29 /*! @brief Concrete visitor implementation for TEXT output. */
30 class TextDocVisitor : public DocVisitor
31 {
32   public:
33     TextDocVisitor(FTextStream &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(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 *)         {}
56
57     //--------------------------------------
58     // visitor functions for compound nodes
59     //--------------------------------------
60     
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 *) {}
107
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 *) {}
138
139   private:
140
141    void filter(const char *str);
142
143     FTextStream &m_t;
144 };
145
146 #endif