1 /******************************************************************************
6 * Copyright (C) 1997-2012 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.
23 const int DocVisitor_Html = 0;
24 const int DocVisitor_Latex = 1;
25 const int DocVisitor_XML = 2;
26 const int DocVisitor_RTF = 3;
27 const int DocVisitor_Man = 4;
28 const int DocVisitor_Text = 5;
29 const int DocVisitor_Other = 6;
31 // forward declarations
35 class DocAutoListItem;
44 class DocSimpleListItem;
49 class DocHtmlListItem;
50 class DocHtmlDescList;
51 class DocHtmlDescTitle;
52 class DocHtmlDescData;
79 class DocCopy; // TODO: no longer generated => remove
81 class DocSimpleSectSep;
82 class DocHtmlBlockQuote;
84 /*! @brief Abstract visitor that participates in the visitor pattern.
90 DocVisitor(int id) : m_id(id) {}
91 virtual ~DocVisitor() {}
92 int id() const { return m_id; }
94 /*! @name Visitor functions for leaf nodes
97 virtual void visit(DocWord *) = 0;
98 virtual void visit(DocWhiteSpace *) = 0;
99 virtual void visit(DocSymbol *) = 0;
100 virtual void visit(DocURL *) = 0;
101 virtual void visit(DocStyleChange *) = 0;
102 virtual void visit(DocVerbatim *) = 0;
103 virtual void visit(DocLineBreak *) = 0;
104 virtual void visit(DocHorRuler *) = 0;
105 virtual void visit(DocAnchor *) = 0;
106 virtual void visit(DocInclude *) = 0;
107 virtual void visit(DocIncOperator *) = 0;
108 virtual void visit(DocFormula *) = 0;
109 virtual void visit(DocLinkedWord *) = 0;
110 virtual void visit(DocIndexEntry *) = 0;
111 virtual void visit(DocSimpleSectSep *) = 0;
112 virtual void visit(DocCite *) = 0;
115 /*! @name Visitor functions for internal nodes
118 virtual void visitPre(DocAutoList *) = 0;
119 virtual void visitPost(DocAutoList *) = 0;
120 virtual void visitPre(DocAutoListItem *) = 0;
121 virtual void visitPost(DocAutoListItem *) = 0;
122 virtual void visitPre(DocPara *) = 0;
123 virtual void visitPost(DocPara *) = 0;
124 virtual void visitPre(DocRoot *) = 0;
125 virtual void visitPost(DocRoot *) = 0;
126 virtual void visitPre(DocSimpleSect *) = 0;
127 virtual void visitPost(DocSimpleSect *) = 0;
128 virtual void visitPre(DocTitle *) = 0;
129 virtual void visitPost(DocTitle *) = 0;
130 virtual void visitPre(DocSimpleList *) = 0;
131 virtual void visitPost(DocSimpleList *) = 0;
132 virtual void visitPre(DocSimpleListItem *) = 0;
133 virtual void visitPost(DocSimpleListItem *) = 0;
134 virtual void visitPre(DocSection *) = 0;
135 virtual void visitPost(DocSection *) = 0;
136 virtual void visitPre(DocHtmlList *) = 0;
137 virtual void visitPost(DocHtmlListItem *) = 0;
138 virtual void visitPre(DocHtmlListItem *) = 0;
139 virtual void visitPost(DocHtmlList *) = 0;
140 virtual void visitPre(DocHtmlDescList *) = 0;
141 virtual void visitPost(DocHtmlDescList *) = 0;
142 virtual void visitPre(DocHtmlDescTitle *) = 0;
143 virtual void visitPost(DocHtmlDescTitle *) = 0;
144 virtual void visitPre(DocHtmlDescData *) = 0;
145 virtual void visitPost(DocHtmlDescData *) = 0;
146 virtual void visitPre(DocHtmlTable *) = 0;
147 virtual void visitPost(DocHtmlRow *) = 0;
148 virtual void visitPre(DocHtmlCell *) = 0;
149 virtual void visitPost(DocHtmlCell *) = 0;
150 virtual void visitPre(DocHtmlRow *) = 0;
151 virtual void visitPost(DocHtmlTable *) = 0;
152 virtual void visitPre(DocHtmlCaption *) = 0;
153 virtual void visitPost(DocHtmlCaption *) = 0;
154 virtual void visitPre(DocInternal *) = 0;
155 virtual void visitPost(DocInternal *) = 0;
156 virtual void visitPre(DocHRef *) = 0;
157 virtual void visitPost(DocHRef *) = 0;
158 virtual void visitPre(DocHtmlHeader *) = 0;
159 virtual void visitPost(DocHtmlHeader *) = 0;
160 virtual void visitPre(DocImage *) = 0;
161 virtual void visitPost(DocImage *) = 0;
162 virtual void visitPre(DocDotFile *) = 0;
163 virtual void visitPost(DocDotFile *) = 0;
164 virtual void visitPre(DocMscFile *) = 0;
165 virtual void visitPost(DocMscFile *) = 0;
166 virtual void visitPre(DocLink *) = 0;
167 virtual void visitPost(DocLink *) = 0;
168 virtual void visitPre(DocRef *) = 0;
169 virtual void visitPost(DocRef *) = 0;
170 virtual void visitPre(DocSecRefItem *) = 0;
171 virtual void visitPost(DocSecRefItem *) = 0;
172 virtual void visitPre(DocSecRefList *) = 0;
173 virtual void visitPost(DocSecRefList *) = 0;
174 virtual void visitPre(DocParamSect *) = 0;
175 virtual void visitPost(DocParamSect *) = 0;
176 virtual void visitPre(DocParamList *) = 0;
177 virtual void visitPost(DocParamList *) = 0;
178 virtual void visitPre(DocXRefItem *) = 0;
179 virtual void visitPost(DocXRefItem *) = 0;
180 virtual void visitPre(DocInternalRef *) = 0;
181 virtual void visitPost(DocInternalRef *) = 0;
182 virtual void visitPre(DocCopy *) = 0;
183 virtual void visitPost(DocCopy *) = 0;
184 virtual void visitPre(DocText *) = 0;
185 virtual void visitPost(DocText *) = 0;
186 virtual void visitPre(DocHtmlBlockQuote *) = 0;
187 virtual void visitPost(DocHtmlBlockQuote *) = 0;