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 _XMLDOCVISITOR_H
20 #define _XMLDOCVISITOR_H
22 #include "docvisitor.h"
27 class CodeOutputInterface;
30 /*! @brief Concrete visitor implementation for XML output. */
31 class XmlDocVisitor : public DocVisitor
34 XmlDocVisitor(FTextStream &t,CodeOutputInterface &ci);
36 //--------------------------------------
37 // visitor functions for leaf nodes
38 //--------------------------------------
40 void visit(DocWord *);
41 void visit(DocLinkedWord *);
42 void visit(DocWhiteSpace *);
43 void visit(DocSymbol *);
44 void visit(DocEmoji *);
46 void visit(DocLineBreak *);
47 void visit(DocHorRuler *);
48 void visit(DocStyleChange *);
49 void visit(DocVerbatim *);
50 void visit(DocAnchor *);
51 void visit(DocInclude *);
52 void visit(DocIncOperator *);
53 void visit(DocFormula *);
54 void visit(DocIndexEntry *);
55 void visit(DocSimpleSectSep *);
56 void visit(DocCite *);
58 //--------------------------------------
59 // visitor functions for compound nodes
60 //--------------------------------------
62 void visitPre(DocAutoList *);
63 void visitPost(DocAutoList *);
64 void visitPre(DocAutoListItem *);
65 void visitPost(DocAutoListItem *);
66 void visitPre(DocPara *) ;
67 void visitPost(DocPara *);
68 void visitPre(DocRoot *);
69 void visitPost(DocRoot *);
70 void visitPre(DocSimpleSect *);
71 void visitPost(DocSimpleSect *);
72 void visitPre(DocTitle *);
73 void visitPost(DocTitle *);
74 void visitPre(DocSimpleList *);
75 void visitPost(DocSimpleList *);
76 void visitPre(DocSimpleListItem *);
77 void visitPost(DocSimpleListItem *);
78 void visitPre(DocSection *);
79 void visitPost(DocSection *);
80 void visitPre(DocHtmlList *);
81 void visitPost(DocHtmlList *) ;
82 void visitPre(DocHtmlListItem *);
83 void visitPost(DocHtmlListItem *);
84 //void visitPre(DocHtmlPre *);
85 //void visitPost(DocHtmlPre *);
86 void visitPre(DocHtmlDescList *);
87 void visitPost(DocHtmlDescList *);
88 void visitPre(DocHtmlDescTitle *);
89 void visitPost(DocHtmlDescTitle *);
90 void visitPre(DocHtmlDescData *);
91 void visitPost(DocHtmlDescData *);
92 void visitPre(DocHtmlTable *);
93 void visitPost(DocHtmlTable *);
94 void visitPre(DocHtmlRow *);
95 void visitPost(DocHtmlRow *) ;
96 void visitPre(DocHtmlCell *);
97 void visitPost(DocHtmlCell *);
98 void visitPre(DocHtmlCaption *);
99 void visitPost(DocHtmlCaption *);
100 void visitPre(DocInternal *);
101 void visitPost(DocInternal *);
102 void visitPre(DocHRef *);
103 void visitPost(DocHRef *);
104 void visitPre(DocHtmlHeader *);
105 void visitPost(DocHtmlHeader *);
106 void visitPre(DocImage *);
107 void visitPost(DocImage *);
108 void visitPre(DocDotFile *);
109 void visitPost(DocDotFile *);
111 void visitPre(DocMscFile *);
112 void visitPost(DocMscFile *);
113 void visitPre(DocDiaFile *);
114 void visitPost(DocDiaFile *);
115 void visitPre(DocLink *);
116 void visitPost(DocLink *);
117 void visitPre(DocRef *);
118 void visitPost(DocRef *);
119 void visitPre(DocSecRefItem *);
120 void visitPost(DocSecRefItem *);
121 void visitPre(DocSecRefList *);
122 void visitPost(DocSecRefList *);
123 //void visitPre(DocLanguage *);
124 //void visitPost(DocLanguage *);
125 void visitPre(DocParamSect *);
126 void visitPost(DocParamSect *);
127 void visitPre(DocParamList *);
128 void visitPost(DocParamList *);
129 void visitPre(DocXRefItem *);
130 void visitPost(DocXRefItem *);
131 void visitPre(DocInternalRef *);
132 void visitPost(DocInternalRef *);
133 void visitPre(DocText *);
134 void visitPost(DocText *);
135 void visitPre(DocHtmlBlockQuote *);
136 void visitPost(DocHtmlBlockQuote *);
137 void visitPre(DocVhdlFlow *);
138 void visitPost(DocVhdlFlow *);
139 void visitPre(DocParBlock *);
140 void visitPost(DocParBlock *);
144 //--------------------------------------
146 //--------------------------------------
148 void filter(const char *str);
149 void startLink(const QCString &ref,const QCString &file,
150 const QCString &anchor);
156 //--------------------------------------
158 //--------------------------------------
161 CodeOutputInterface &m_ci;
164 QStack<bool> m_enabled;