Blame src/docvisitor.h

Packit 1c1d7e
/******************************************************************************
Packit 1c1d7e
 *
Packit 1c1d7e
 * 
Packit 1c1d7e
 *
Packit 1c1d7e
 *
Packit 1c1d7e
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Permission to use, copy, modify, and distribute this software and its
Packit 1c1d7e
 * documentation under the terms of the GNU General Public License is hereby 
Packit 1c1d7e
 * granted. No representations are made about the suitability of this software 
Packit 1c1d7e
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit 1c1d7e
 * See the GNU General Public License for more details.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Documents produced by Doxygen are derivative works derived from the
Packit 1c1d7e
 * input used in their production; they are not affected by this license.
Packit 1c1d7e
 *
Packit 1c1d7e
 */
Packit 1c1d7e
Packit 1c1d7e
#ifndef _DOCVISITOR_H
Packit 1c1d7e
#define _DOCVISITOR_H
Packit 1c1d7e
Packit 1c1d7e
// ids
Packit 1c1d7e
const int DocVisitor_Html  = 0;
Packit 1c1d7e
const int DocVisitor_Latex = 1;
Packit 1c1d7e
const int DocVisitor_XML   = 2;
Packit 1c1d7e
const int DocVisitor_RTF   = 3;
Packit 1c1d7e
const int DocVisitor_Man   = 4;
Packit 1c1d7e
const int DocVisitor_Text  = 5;
Packit 1c1d7e
const int DocVisitor_Other = 6;
Packit 1c1d7e
const int DocVisitor_Docbook = 7;
Packit 1c1d7e
Packit 1c1d7e
// forward declarations
Packit 1c1d7e
class DocWord;
Packit 1c1d7e
class DocWhiteSpace;
Packit 1c1d7e
class DocAutoList;
Packit 1c1d7e
class DocAutoListItem;
Packit 1c1d7e
class DocPara;
Packit 1c1d7e
class DocRoot;
Packit 1c1d7e
class DocSymbol;
Packit 1c1d7e
class DocURL;
Packit 1c1d7e
class DocStyleChange;
Packit 1c1d7e
class DocSimpleSect;
Packit 1c1d7e
class DocTitle;
Packit 1c1d7e
class DocSimpleList;
Packit 1c1d7e
class DocSimpleListItem;
Packit 1c1d7e
class DocSection;
Packit 1c1d7e
class DocVerbatim;
Packit 1c1d7e
class DocXRefItem;
Packit 1c1d7e
class DocHtmlList;
Packit 1c1d7e
class DocHtmlListItem;
Packit 1c1d7e
class DocHtmlDescList;
Packit 1c1d7e
class DocHtmlDescTitle;
Packit 1c1d7e
class DocHtmlDescData;
Packit 1c1d7e
class DocHtmlTable;
Packit 1c1d7e
class DocHtmlRow;
Packit 1c1d7e
class DocHtmlCell;
Packit 1c1d7e
class DocHtmlCaption;
Packit 1c1d7e
class DocLineBreak;
Packit 1c1d7e
class DocHorRuler;
Packit 1c1d7e
class DocAnchor;
Packit 1c1d7e
class DocIndexEntry;
Packit 1c1d7e
class DocInternal;
Packit 1c1d7e
class DocHRef;
Packit 1c1d7e
class DocInclude;
Packit 1c1d7e
class DocIncOperator;
Packit 1c1d7e
class DocHtmlHeader;
Packit 1c1d7e
class DocImage;
Packit 1c1d7e
class DocDotFile;
Packit 1c1d7e
class DocMscFile;
Packit 1c1d7e
class DocDiaFile;
Packit 1c1d7e
class DocLink;
Packit 1c1d7e
class DocCite;
Packit 1c1d7e
class DocRef;
Packit 1c1d7e
class DocFormula;
Packit 1c1d7e
class DocSecRefItem;
Packit 1c1d7e
class DocSecRefList;
Packit 1c1d7e
class DocLinkedWord;
Packit 1c1d7e
class DocParamSect;
Packit 1c1d7e
class DocParamList;
Packit 1c1d7e
class DocInternalRef;
Packit 1c1d7e
class DocCopy; // TODO: no longer generated => remove
Packit 1c1d7e
class DocText;
Packit 1c1d7e
class DocSimpleSectSep;
Packit 1c1d7e
class DocHtmlBlockQuote;
Packit 1c1d7e
class DocVhdlFlow;
Packit 1c1d7e
class DocParBlock;
Packit 1c1d7e
Packit 1c1d7e
/*! @brief Abstract visitor that participates in the visitor pattern.
Packit 1c1d7e
 */
Packit 1c1d7e
class DocVisitor
Packit 1c1d7e
{
Packit 1c1d7e
    int m_id;
Packit 1c1d7e
  public:
Packit 1c1d7e
    DocVisitor(int id) : m_id(id) {}
Packit 1c1d7e
    virtual ~DocVisitor() {}
Packit 1c1d7e
    int id() const { return m_id; }
Packit 1c1d7e
Packit 1c1d7e
    /*! @name Visitor functions for leaf nodes 
Packit 1c1d7e
     *  @{
Packit 1c1d7e
     */
Packit 1c1d7e
    virtual void visit(DocWord *) = 0;
Packit 1c1d7e
    virtual void visit(DocWhiteSpace *) = 0;
Packit 1c1d7e
    virtual void visit(DocSymbol *) = 0;
Packit 1c1d7e
    virtual void visit(DocURL *) = 0;
Packit 1c1d7e
    virtual void visit(DocStyleChange *) = 0;
Packit 1c1d7e
    virtual void visit(DocVerbatim *) = 0;
Packit 1c1d7e
    virtual void visit(DocLineBreak *) = 0;
Packit 1c1d7e
    virtual void visit(DocHorRuler *) = 0;
Packit 1c1d7e
    virtual void visit(DocAnchor *) = 0;
Packit 1c1d7e
    virtual void visit(DocInclude *) = 0;
Packit 1c1d7e
    virtual void visit(DocIncOperator *) = 0;
Packit 1c1d7e
    virtual void visit(DocFormula *) = 0;
Packit 1c1d7e
    virtual void visit(DocLinkedWord *) = 0;
Packit 1c1d7e
    virtual void visit(DocIndexEntry *) = 0;
Packit 1c1d7e
    virtual void visit(DocSimpleSectSep *) = 0;
Packit 1c1d7e
    virtual void visit(DocCite *) = 0;
Packit 1c1d7e
    /*! @} */
Packit 1c1d7e
Packit 1c1d7e
    /*! @name Visitor functions for internal nodes 
Packit 1c1d7e
     *  @{
Packit 1c1d7e
     */
Packit 1c1d7e
    virtual void visitPre(DocAutoList *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocAutoList *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocAutoListItem *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocAutoListItem *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocPara *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocPara *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocRoot *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocRoot *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocSimpleSect *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocSimpleSect *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocTitle *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocTitle *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocSimpleList *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocSimpleList *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocSimpleListItem *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocSimpleListItem *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocSection *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocSection *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocHtmlList *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocHtmlListItem *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocHtmlListItem *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocHtmlList *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocHtmlDescList *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocHtmlDescList *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocHtmlDescTitle *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocHtmlDescTitle *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocHtmlDescData *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocHtmlDescData *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocHtmlTable *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocHtmlRow *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocHtmlCell *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocHtmlCell *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocHtmlRow *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocHtmlTable *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocHtmlCaption *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocHtmlCaption *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocInternal *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocInternal *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocHRef *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocHRef *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocHtmlHeader *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocHtmlHeader *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocImage *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocImage *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocDotFile *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocDotFile *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocMscFile *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocMscFile *) = 0;   
Packit 1c1d7e
    virtual void visitPre(DocDiaFile *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocDiaFile *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocLink *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocLink *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocRef *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocRef *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocSecRefItem *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocSecRefItem *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocSecRefList *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocSecRefList *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocParamSect *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocParamSect *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocParamList *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocParamList *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocXRefItem *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocXRefItem *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocInternalRef *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocInternalRef *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocCopy *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocCopy *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocText *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocText *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocHtmlBlockQuote *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocHtmlBlockQuote *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocVhdlFlow *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocVhdlFlow *) = 0;
Packit 1c1d7e
    virtual void visitPre(DocParBlock *) = 0;
Packit 1c1d7e
    virtual void visitPost(DocParBlock *) = 0;
Packit 1c1d7e
    /*! @} */
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
#endif