textdocvisitor.h 4.64 KB
Newer Older
1 2
/******************************************************************************
 *
3
 * 
4 5
 *
 *
Dimitri van Heesch's avatar
Dimitri van Heesch committed
6
 * Copyright (C) 1997-2013 by Dimitri van Heesch.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation under the terms of the GNU General Public License is hereby 
 * granted. No representations are made about the suitability of this software 
 * for any purpose. It is provided "as is" without express or implied warranty.
 * See the GNU General Public License for more details.
 *
 * Documents produced by Doxygen are derivative works derived from the
 * input used in their production; they are not affected by this license.
 *
 */

#ifndef _TEXTDOCVISITOR_H
#define _TEXTDOCVISITOR_H

#include "docvisitor.h"
#include "docparser.h"
#include <qstack.h>
#include <qcstring.h>
26
#include "ftextstream.h"
27 28 29 30 31 32


/*! @brief Concrete visitor implementation for TEXT output. */
class TextDocVisitor : public DocVisitor
{
  public:
33
    TextDocVisitor(FTextStream &t) : DocVisitor(DocVisitor_Text), m_t(t) {}
34 35 36 37 38
    
    //--------------------------------------
    // visitor functions for leaf nodes
    //--------------------------------------
    
39 40
    void visit(DocWord *w)        { filter(w->word()); }
    void visit(DocLinkedWord *w)  { filter(w->word()); }
41 42
    void visit(DocWhiteSpace *)   { m_t << " ";       }
    void visit(DocSymbol *);
43
    void visit(DocURL *u)         { filter(u->url());  }
44 45 46 47 48 49 50 51 52
    void visit(DocLineBreak *)    { m_t << " ";       }
    void visit(DocHorRuler *)     {}
    void visit(DocStyleChange *)  {}
    void visit(DocVerbatim *s)    { filter(s->text()); }
    void visit(DocAnchor *)       {}
    void visit(DocInclude *)      {}
    void visit(DocIncOperator *)  {}
    void visit(DocFormula *)      {}
    void visit(DocIndexEntry *)   {}
53
    void visit(DocSimpleSectSep *){}
54
    void visit(DocCite *)         {}
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

    //--------------------------------------
    // visitor functions for compound nodes
    //--------------------------------------
    
    void visitPre(DocAutoList *) {}
    void visitPost(DocAutoList *) {}
    void visitPre(DocAutoListItem *) {}
    void visitPost(DocAutoListItem *) {}
    void visitPre(DocPara *)  {}
    void visitPost(DocPara *) {}
    void visitPre(DocRoot *) {}
    void visitPost(DocRoot *) {}
    void visitPre(DocSimpleSect *) {}
    void visitPost(DocSimpleSect *) {}
    void visitPre(DocTitle *) {}
    void visitPost(DocTitle *) {}
    void visitPre(DocSimpleList *) {}
    void visitPost(DocSimpleList *) {}
    void visitPre(DocSimpleListItem *) {}
    void visitPost(DocSimpleListItem *) {}
    void visitPre(DocSection *) {}
    void visitPost(DocSection *) {}
    void visitPre(DocHtmlList *) {}
    void visitPost(DocHtmlList *)  {}
    void visitPre(DocHtmlListItem *) {}
    void visitPost(DocHtmlListItem *) {}
    void visitPre(DocHtmlDescList *) {}
    void visitPost(DocHtmlDescList *) {}
    void visitPre(DocHtmlDescTitle *) {}
    void visitPost(DocHtmlDescTitle *) {}
    void visitPre(DocHtmlDescData *) {}
    void visitPost(DocHtmlDescData *) {}
    void visitPre(DocHtmlTable *) {}
    void visitPost(DocHtmlTable *) {}
    void visitPre(DocHtmlRow *) {}
    void visitPost(DocHtmlRow *)  {}
    void visitPre(DocHtmlCell *) {}
    void visitPost(DocHtmlCell *) {}
    void visitPre(DocHtmlCaption *) {}
    void visitPost(DocHtmlCaption *) {}
    void visitPre(DocInternal *) {}
    void visitPost(DocInternal *) {}
    void visitPre(DocHRef *) {}
    void visitPost(DocHRef *) {}
    void visitPre(DocHtmlHeader *) {}
    void visitPost(DocHtmlHeader *) {}
    void visitPre(DocImage *) {}
    void visitPost(DocImage *) {}
    void visitPre(DocDotFile *) {}
    void visitPost(DocDotFile *) {}
106 107 108

    void visitPre(DocMscFile *) {}
    void visitPost(DocMscFile *) {}
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
    void visitPre(DocLink *) {}
    void visitPost(DocLink *) {}
    void visitPre(DocRef *) {}
    void visitPost(DocRef *) {}
    void visitPre(DocSecRefItem *) {}
    void visitPost(DocSecRefItem *) {}
    void visitPre(DocSecRefList *) {}
    void visitPost(DocSecRefList *) {}
    void visitPre(DocParamSect *) {}
    void visitPost(DocParamSect *) {}
    void visitPre(DocParamList *) {}
    void visitPost(DocParamList *) {}
    void visitPre(DocXRefItem *) {}
    void visitPost(DocXRefItem *) {}
    void visitPre(DocInternalRef *) {}
    void visitPost(DocInternalRef *) {}
    void visitPre(DocCopy *) {}
    void visitPost(DocCopy *) {}
    void visitPre(DocText *) {}
    void visitPost(DocText *) {}
129 130
    void visitPre(DocHtmlBlockQuote *) {}
    void visitPost(DocHtmlBlockQuote *) {}
131 132
    void visitPre(DocVhdlFlow *) {}
    void visitPost(DocVhdlFlow *) {}
133 134 135 136 137

  private:

   void filter(const char *str);

138
    FTextStream &m_t;
139 140 141
};

#endif