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 "qcstring.h" 23 #include "docvisitor.h" 24 #include "docparser.h" 25 #include "textstream.h" 26 27 /*! @brief Concrete visitor implementation for TEXT output. */ 28 class TextDocVisitor : public DocVisitor 29 { 30 public: TextDocVisitor(TextStream & t)31 TextDocVisitor(TextStream &t) : DocVisitor(DocVisitor_Text), m_t(t) {} 32 33 //-------------------------------------- 34 // visitor functions for leaf nodes 35 //-------------------------------------- 36 visit(DocWord * w)37 void visit(DocWord *w) { filter(w->word()); } visit(DocLinkedWord * w)38 void visit(DocLinkedWord *w) { filter(w->word()); } visit(DocWhiteSpace *)39 void visit(DocWhiteSpace *) { m_t << " "; } 40 void visit(DocSymbol *); 41 void visit(DocEmoji *); visit(DocURL * u)42 void visit(DocURL *u) { filter(u->url()); } visit(DocLineBreak *)43 void visit(DocLineBreak *) { m_t << " "; } visit(DocHorRuler *)44 void visit(DocHorRuler *) {} visit(DocStyleChange *)45 void visit(DocStyleChange *) {} visit(DocVerbatim * s)46 void visit(DocVerbatim *s) { filter(s->text()); } visit(DocAnchor *)47 void visit(DocAnchor *) {} visit(DocInclude *)48 void visit(DocInclude *) {} visit(DocIncOperator *)49 void visit(DocIncOperator *) {} visit(DocFormula *)50 void visit(DocFormula *) {} visit(DocIndexEntry *)51 void visit(DocIndexEntry *) {} visit(DocSimpleSectSep *)52 void visit(DocSimpleSectSep *){} visit(DocCite *)53 void visit(DocCite *) {} 54 55 //-------------------------------------- 56 // visitor functions for compound nodes 57 //-------------------------------------- 58 visitPre(DocAutoList *)59 void visitPre(DocAutoList *) {} visitPost(DocAutoList *)60 void visitPost(DocAutoList *) {} visitPre(DocAutoListItem *)61 void visitPre(DocAutoListItem *) {} visitPost(DocAutoListItem *)62 void visitPost(DocAutoListItem *) {} visitPre(DocPara *)63 void visitPre(DocPara *) {} visitPost(DocPara *)64 void visitPost(DocPara *) {} visitPre(DocRoot *)65 void visitPre(DocRoot *) {} visitPost(DocRoot *)66 void visitPost(DocRoot *) {} visitPre(DocSimpleSect *)67 void visitPre(DocSimpleSect *) {} visitPost(DocSimpleSect *)68 void visitPost(DocSimpleSect *) {} visitPre(DocTitle *)69 void visitPre(DocTitle *) {} visitPost(DocTitle *)70 void visitPost(DocTitle *) {} visitPre(DocSimpleList *)71 void visitPre(DocSimpleList *) {} visitPost(DocSimpleList *)72 void visitPost(DocSimpleList *) {} visitPre(DocSimpleListItem *)73 void visitPre(DocSimpleListItem *) {} visitPost(DocSimpleListItem *)74 void visitPost(DocSimpleListItem *) {} visitPre(DocSection *)75 void visitPre(DocSection *) {} visitPost(DocSection *)76 void visitPost(DocSection *) {} visitPre(DocHtmlList *)77 void visitPre(DocHtmlList *) {} visitPost(DocHtmlList *)78 void visitPost(DocHtmlList *) {} visitPre(DocHtmlListItem *)79 void visitPre(DocHtmlListItem *) {} visitPost(DocHtmlListItem *)80 void visitPost(DocHtmlListItem *) {} visitPre(DocHtmlDescList *)81 void visitPre(DocHtmlDescList *) {} visitPost(DocHtmlDescList *)82 void visitPost(DocHtmlDescList *) {} visitPre(DocHtmlDescTitle *)83 void visitPre(DocHtmlDescTitle *) {} visitPost(DocHtmlDescTitle *)84 void visitPost(DocHtmlDescTitle *) {} visitPre(DocHtmlDescData *)85 void visitPre(DocHtmlDescData *) {} visitPost(DocHtmlDescData *)86 void visitPost(DocHtmlDescData *) {} visitPre(DocHtmlTable *)87 void visitPre(DocHtmlTable *) {} visitPost(DocHtmlTable *)88 void visitPost(DocHtmlTable *) {} visitPre(DocHtmlRow *)89 void visitPre(DocHtmlRow *) {} visitPost(DocHtmlRow *)90 void visitPost(DocHtmlRow *) {} visitPre(DocHtmlCell *)91 void visitPre(DocHtmlCell *) {} visitPost(DocHtmlCell *)92 void visitPost(DocHtmlCell *) {} visitPre(DocHtmlCaption *)93 void visitPre(DocHtmlCaption *) {} visitPost(DocHtmlCaption *)94 void visitPost(DocHtmlCaption *) {} visitPre(DocInternal *)95 void visitPre(DocInternal *) {} visitPost(DocInternal *)96 void visitPost(DocInternal *) {} visitPre(DocHRef *)97 void visitPre(DocHRef *) {} visitPost(DocHRef *)98 void visitPost(DocHRef *) {} visitPre(DocHtmlHeader *)99 void visitPre(DocHtmlHeader *) {} visitPost(DocHtmlHeader *)100 void visitPost(DocHtmlHeader *) {} visitPre(DocImage *)101 void visitPre(DocImage *) {} visitPost(DocImage *)102 void visitPost(DocImage *) {} visitPre(DocDotFile *)103 void visitPre(DocDotFile *) {} visitPost(DocDotFile *)104 void visitPost(DocDotFile *) {} 105 visitPre(DocMscFile *)106 void visitPre(DocMscFile *) {} visitPost(DocMscFile *)107 void visitPost(DocMscFile *) {} visitPre(DocDiaFile *)108 void visitPre(DocDiaFile *) {} visitPost(DocDiaFile *)109 void visitPost(DocDiaFile *) {} visitPre(DocLink *)110 void visitPre(DocLink *) {} visitPost(DocLink *)111 void visitPost(DocLink *) {} visitPre(DocRef *)112 void visitPre(DocRef *) {} visitPost(DocRef *)113 void visitPost(DocRef *) {} visitPre(DocSecRefItem *)114 void visitPre(DocSecRefItem *) {} visitPost(DocSecRefItem *)115 void visitPost(DocSecRefItem *) {} visitPre(DocSecRefList *)116 void visitPre(DocSecRefList *) {} visitPost(DocSecRefList *)117 void visitPost(DocSecRefList *) {} visitPre(DocParamSect *)118 void visitPre(DocParamSect *) {} visitPost(DocParamSect *)119 void visitPost(DocParamSect *) {} visitPre(DocParamList *)120 void visitPre(DocParamList *) {} visitPost(DocParamList *)121 void visitPost(DocParamList *) {} visitPre(DocXRefItem *)122 void visitPre(DocXRefItem *) {} visitPost(DocXRefItem *)123 void visitPost(DocXRefItem *) {} visitPre(DocInternalRef *)124 void visitPre(DocInternalRef *) {} visitPost(DocInternalRef *)125 void visitPost(DocInternalRef *) {} visitPre(DocText *)126 void visitPre(DocText *) {} visitPost(DocText *)127 void visitPost(DocText *) {} visitPre(DocHtmlBlockQuote *)128 void visitPre(DocHtmlBlockQuote *) {} visitPost(DocHtmlBlockQuote *)129 void visitPost(DocHtmlBlockQuote *) {} visitPre(DocVhdlFlow *)130 void visitPre(DocVhdlFlow *) {} visitPost(DocVhdlFlow *)131 void visitPost(DocVhdlFlow *) {} visitPre(DocParBlock *)132 void visitPre(DocParBlock *) {} visitPost(DocParBlock *)133 void visitPost(DocParBlock *) {} 134 135 private: 136 137 void filter(const QCString &str); 138 139 TextStream &m_t; 140 }; 141 142 #endif 143