Orb/Doxygen/src/docvisitor.h
changeset 3 d8fccb2cd802
parent 0 42188c7ea2d9
child 4 468f4c8d3d5b
equal deleted inserted replaced
2:932c358ece3e 3:d8fccb2cd802
       
     1 /******************************************************************************
       
     2  *
       
     3  * 
       
     4  *
       
     5  *
       
     6  * Copyright (C) 1997-2008 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 _DOCVISITOR_H
       
    20 #define _DOCVISITOR_H
       
    21 
       
    22 // ids
       
    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;
       
    30 
       
    31 // forward declarations
       
    32 class DocWord;
       
    33 class DocWhiteSpace;
       
    34 class DocAutoList;
       
    35 class DocAutoListItem;
       
    36 class DocPara;
       
    37 class DocRoot;
       
    38 class DocSymbol;
       
    39 class DocURL;
       
    40 class DocStyleChange;
       
    41 class DocSimpleSect;
       
    42 class DocTitle;
       
    43 class DocSimpleList;
       
    44 class DocSimpleListItem;
       
    45 class DocSection;
       
    46 class DocVerbatim;
       
    47 class DocXRefItem;
       
    48 class DocHtmlList;
       
    49 class DocHtmlListItem;
       
    50 class DocHtmlDescList;
       
    51 class DocHtmlDescTitle;
       
    52 class DocHtmlDescData;
       
    53 class DocHtmlTable;
       
    54 class DocHtmlRow;
       
    55 class DocHtmlCell;
       
    56 class DocHtmlCaption;
       
    57 class DocLineBreak;
       
    58 class DocHorRuler;
       
    59 class DocAnchor;
       
    60 class DocIndexEntry;
       
    61 class DocInternal;
       
    62 class DocHRef;
       
    63 class DocInclude;
       
    64 class DocIncOperator;
       
    65 class DocHtmlHeader;
       
    66 class DocImage;
       
    67 class DocDotFile;
       
    68 class DocLink;
       
    69 class DocRef;
       
    70 class DocFormula;
       
    71 class DocSecRefItem;
       
    72 class DocSecRefList;
       
    73 //class DocLanguage;
       
    74 class DocLinkedWord;
       
    75 class DocParamSect;
       
    76 class DocParamList;
       
    77 class DocInternalRef;
       
    78 class DocCopy;
       
    79 class DocText;
       
    80 class DocSimpleSectSep;
       
    81 
       
    82 /*! @brief Abstract visitor that participates in the visitor pattern.
       
    83  */
       
    84 class DocVisitor
       
    85 {
       
    86     int m_id;
       
    87   public:
       
    88     DocVisitor(int id) : m_id(id) {}
       
    89     virtual ~DocVisitor() {}
       
    90     int id() const { return m_id; }
       
    91 
       
    92     /*! @name Visitor functions for leaf nodes 
       
    93      *  @{
       
    94      */
       
    95     virtual void visit(DocWord *) = 0;
       
    96     virtual void visit(DocWhiteSpace *) = 0;
       
    97     virtual void visit(DocSymbol *) = 0;
       
    98     virtual void visit(DocURL *) = 0;
       
    99     virtual void visit(DocStyleChange *) = 0;
       
   100     virtual void visit(DocVerbatim *) = 0;
       
   101     virtual void visit(DocLineBreak *) = 0;
       
   102     virtual void visit(DocHorRuler *) = 0;
       
   103     virtual void visit(DocAnchor *) = 0;
       
   104     virtual void visit(DocInclude *) = 0;
       
   105     virtual void visit(DocIncOperator *) = 0;
       
   106     virtual void visit(DocFormula *) = 0;
       
   107     virtual void visit(DocLinkedWord *) = 0;
       
   108     virtual void visit(DocIndexEntry *) = 0;
       
   109     virtual void visit(DocSimpleSectSep *) = 0;
       
   110     /*! @} */
       
   111 
       
   112     /*! @name Visitor functions for internal nodes 
       
   113      *  @{
       
   114      */
       
   115     virtual void visitPre(DocAutoList *) = 0;
       
   116     virtual void visitPost(DocAutoList *) = 0;
       
   117     virtual void visitPre(DocAutoListItem *) = 0;
       
   118     virtual void visitPost(DocAutoListItem *) = 0;
       
   119     virtual void visitPre(DocPara *) = 0;
       
   120     virtual void visitPost(DocPara *) = 0;
       
   121     virtual void visitPre(DocRoot *) = 0;
       
   122     virtual void visitPost(DocRoot *) = 0;
       
   123     virtual void visitPre(DocSimpleSect *) = 0;
       
   124     virtual void visitPost(DocSimpleSect *) = 0;
       
   125     virtual void visitPre(DocTitle *) = 0;
       
   126     virtual void visitPost(DocTitle *) = 0;
       
   127     virtual void visitPre(DocSimpleList *) = 0;
       
   128     virtual void visitPost(DocSimpleList *) = 0;
       
   129     virtual void visitPre(DocSimpleListItem *) = 0;
       
   130     virtual void visitPost(DocSimpleListItem *) = 0;
       
   131     virtual void visitPre(DocSection *) = 0;
       
   132     virtual void visitPost(DocSection *) = 0;
       
   133     virtual void visitPre(DocHtmlList *) = 0;
       
   134     virtual void visitPost(DocHtmlListItem *) = 0;
       
   135     virtual void visitPre(DocHtmlListItem *) = 0;
       
   136     virtual void visitPost(DocHtmlList *) = 0;
       
   137     virtual void visitPre(DocHtmlDescList *) = 0;
       
   138     virtual void visitPost(DocHtmlDescList *) = 0;
       
   139     virtual void visitPre(DocHtmlDescTitle *) = 0;
       
   140     virtual void visitPost(DocHtmlDescTitle *) = 0;
       
   141     virtual void visitPre(DocHtmlDescData *) = 0;
       
   142     virtual void visitPost(DocHtmlDescData *) = 0;
       
   143     virtual void visitPre(DocHtmlTable *) = 0;
       
   144     virtual void visitPost(DocHtmlRow *) = 0;
       
   145     virtual void visitPre(DocHtmlCell *) = 0;
       
   146     virtual void visitPost(DocHtmlCell *) = 0;
       
   147     virtual void visitPre(DocHtmlRow *) = 0;
       
   148     virtual void visitPost(DocHtmlTable *) = 0;
       
   149     virtual void visitPre(DocHtmlCaption *) = 0;
       
   150     virtual void visitPost(DocHtmlCaption *) = 0;
       
   151     virtual void visitPre(DocInternal *) = 0;
       
   152     virtual void visitPost(DocInternal *) = 0;
       
   153     virtual void visitPre(DocHRef *) = 0;
       
   154     virtual void visitPost(DocHRef *) = 0;
       
   155     virtual void visitPre(DocHtmlHeader *) = 0;
       
   156     virtual void visitPost(DocHtmlHeader *) = 0;
       
   157     virtual void visitPre(DocImage *) = 0;
       
   158     virtual void visitPost(DocImage *) = 0;
       
   159     virtual void visitPre(DocDotFile *) = 0;
       
   160     virtual void visitPost(DocDotFile *) = 0;
       
   161     virtual void visitPre(DocLink *) = 0;
       
   162     virtual void visitPost(DocLink *) = 0;
       
   163     virtual void visitPre(DocRef *) = 0;
       
   164     virtual void visitPost(DocRef *) = 0;
       
   165     virtual void visitPre(DocSecRefItem *) = 0;
       
   166     virtual void visitPost(DocSecRefItem *) = 0;
       
   167     virtual void visitPre(DocSecRefList *) = 0;
       
   168     virtual void visitPost(DocSecRefList *) = 0;
       
   169     //virtual void visitPre(DocLanguage *) = 0;
       
   170     //virtual void visitPost(DocLanguage *) = 0;
       
   171     virtual void visitPre(DocParamSect *) = 0;
       
   172     virtual void visitPost(DocParamSect *) = 0;
       
   173     virtual void visitPre(DocParamList *) = 0;
       
   174     virtual void visitPost(DocParamList *) = 0;
       
   175     virtual void visitPre(DocXRefItem *) = 0;
       
   176     virtual void visitPost(DocXRefItem *) = 0;
       
   177     virtual void visitPre(DocInternalRef *) = 0;
       
   178     virtual void visitPost(DocInternalRef *) = 0;
       
   179     virtual void visitPre(DocCopy *) = 0;
       
   180     virtual void visitPost(DocCopy *) = 0;
       
   181     virtual void visitPre(DocText *) = 0;
       
   182     virtual void visitPost(DocText *) = 0;
       
   183     /*! @} */
       
   184 };
       
   185 
       
   186 #endif