Fix for UBSan build
[platform/upstream/doxygen.git] / src / textdocvisitor.h
1 /******************************************************************************
2  *
3  * $Id: $
4  *
5  *
6  * Copyright (C) 1997-2012 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(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     void visit(DocCite *)         {}
55
56     //--------------------------------------
57     // visitor functions for compound nodes
58     //--------------------------------------
59     
60     void visitPre(DocAutoList *) {}
61     void visitPost(DocAutoList *) {}
62     void visitPre(DocAutoListItem *) {}
63     void visitPost(DocAutoListItem *) {}
64     void visitPre(DocPara *)  {}
65     void visitPost(DocPara *) {}
66     void visitPre(DocRoot *) {}
67     void visitPost(DocRoot *) {}
68     void visitPre(DocSimpleSect *) {}
69     void visitPost(DocSimpleSect *) {}
70     void visitPre(DocTitle *) {}
71     void visitPost(DocTitle *) {}
72     void visitPre(DocSimpleList *) {}
73     void visitPost(DocSimpleList *) {}
74     void visitPre(DocSimpleListItem *) {}
75     void visitPost(DocSimpleListItem *) {}
76     void visitPre(DocSection *) {}
77     void visitPost(DocSection *) {}
78     void visitPre(DocHtmlList *) {}
79     void visitPost(DocHtmlList *)  {}
80     void visitPre(DocHtmlListItem *) {}
81     void visitPost(DocHtmlListItem *) {}
82     void visitPre(DocHtmlDescList *) {}
83     void visitPost(DocHtmlDescList *) {}
84     void visitPre(DocHtmlDescTitle *) {}
85     void visitPost(DocHtmlDescTitle *) {}
86     void visitPre(DocHtmlDescData *) {}
87     void visitPost(DocHtmlDescData *) {}
88     void visitPre(DocHtmlTable *) {}
89     void visitPost(DocHtmlTable *) {}
90     void visitPre(DocHtmlRow *) {}
91     void visitPost(DocHtmlRow *)  {}
92     void visitPre(DocHtmlCell *) {}
93     void visitPost(DocHtmlCell *) {}
94     void visitPre(DocHtmlCaption *) {}
95     void visitPost(DocHtmlCaption *) {}
96     void visitPre(DocInternal *) {}
97     void visitPost(DocInternal *) {}
98     void visitPre(DocHRef *) {}
99     void visitPost(DocHRef *) {}
100     void visitPre(DocHtmlHeader *) {}
101     void visitPost(DocHtmlHeader *) {}
102     void visitPre(DocImage *) {}
103     void visitPost(DocImage *) {}
104     void visitPre(DocDotFile *) {}
105     void visitPost(DocDotFile *) {}
106
107     void visitPre(DocMscFile *) {}
108     void visitPost(DocMscFile *) {}
109     void visitPre(DocLink *) {}
110     void visitPost(DocLink *) {}
111     void visitPre(DocRef *) {}
112     void visitPost(DocRef *) {}
113     void visitPre(DocSecRefItem *) {}
114     void visitPost(DocSecRefItem *) {}
115     void visitPre(DocSecRefList *) {}
116     void visitPost(DocSecRefList *) {}
117     void visitPre(DocParamSect *) {}
118     void visitPost(DocParamSect *) {}
119     void visitPre(DocParamList *) {}
120     void visitPost(DocParamList *) {}
121     void visitPre(DocXRefItem *) {}
122     void visitPost(DocXRefItem *) {}
123     void visitPre(DocInternalRef *) {}
124     void visitPost(DocInternalRef *) {}
125     void visitPre(DocCopy *) {}
126     void visitPost(DocCopy *) {}
127     void visitPre(DocText *) {}
128     void visitPost(DocText *) {}
129     void visitPre(DocHtmlBlockQuote *) {}
130     void visitPost(DocHtmlBlockQuote *) {}
131
132   private:
133
134    void filter(const char *str);
135
136     FTextStream &m_t;
137 };
138
139 #endif