Doxygen
Loading...
Searching...
No Matches
mandocvisitor.h
Go to the documentation of this file.
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 MANDOCVISITOR_H
20#define MANDOCVISITOR_H
21
22#include <iostream>
23#include <array>
24
25#include "qcstring.h"
26#include "docvisitor.h"
27#include "docnode.h"
28
29class OutputCodeList;
30class TextStream;
31
32/*! @brief Concrete visitor implementation for LaTeX output. */
34{
35 public:
36 ManDocVisitor(TextStream &t,OutputCodeList &ci,const QCString &langExt);
37
38 //--------------------------------------
39 // visitor functions for leaf nodes
40 //--------------------------------------
41
42 void operator()(const DocWord &);
43 void operator()(const DocLinkedWord &);
44 void operator()(const DocWhiteSpace &);
45 void operator()(const DocSymbol &);
46 void operator()(const DocEmoji &);
47 void operator()(const DocURL &);
48 void operator()(const DocLineBreak &);
49 void operator()(const DocHorRuler &);
50 void operator()(const DocStyleChange &);
51 void operator()(const DocVerbatim &);
52 void operator()(const DocAnchor &);
53 void operator()(const DocInclude &);
54 void operator()(const DocIncOperator &);
55 void operator()(const DocFormula &);
56 void operator()(const DocIndexEntry &);
57 void operator()(const DocSimpleSectSep &);
58 void operator()(const DocCite &);
59 void operator()(const DocSeparator &);
60
61 //--------------------------------------
62 // visitor functions for compound nodes
63 //--------------------------------------
64
65 void operator()(const DocAutoList &);
66 void operator()(const DocAutoListItem &);
67 void operator()(const DocPara &);
68 void operator()(const DocRoot &);
69 void operator()(const DocSimpleSect &);
70 void operator()(const DocTitle &);
71 void operator()(const DocSimpleList &);
72 void operator()(const DocSimpleListItem &);
73 void operator()(const DocSection &s);
74 void operator()(const DocHtmlList &s);
75 void operator()(const DocHtmlListItem &);
76 void operator()(const DocHtmlDescList &);
77 void operator()(const DocHtmlDescTitle &);
78 void operator()(const DocHtmlDescData &);
79 void operator()(const DocHtmlTable &t);
80 void operator()(const DocHtmlCaption &);
81 void operator()(const DocHtmlRow &);
82 void operator()(const DocHtmlCell &);
83 void operator()(const DocInternal &);
84 void operator()(const DocHRef &);
85 void operator()(const DocHtmlSummary &);
86 void operator()(const DocHtmlDetails &);
87 void operator()(const DocHtmlHeader &);
88 void operator()(const DocImage &);
89 void operator()(const DocDotFile &);
90 void operator()(const DocMscFile &);
91 void operator()(const DocDiaFile &);
92 void operator()(const DocPlantUmlFile &);
93 void operator()(const DocLink &lnk);
94 void operator()(const DocRef &ref);
95 void operator()(const DocSecRefItem &);
96 void operator()(const DocSecRefList &);
97 void operator()(const DocParamSect &);
98 void operator()(const DocParamList &);
99 void operator()(const DocXRefItem &);
100 void operator()(const DocInternalRef &);
101 void operator()(const DocText &);
102 void operator()(const DocHtmlBlockQuote &);
103 void operator()(const DocVhdlFlow &);
104 void operator()(const DocParBlock &);
105
106 private:
107 template<class T>
108 void visitChildren(const T &t)
109 {
110 for (const auto &child : t.children())
111 {
112 std::visit(*this, child);
113 }
114 }
115
116 //--------------------------------------
117 // helper functions
118 //--------------------------------------
119
120 void filter(const QCString &str);
121
122 //--------------------------------------
123 // state variables
124 //--------------------------------------
125
126 TextStream &m_t;
127 OutputCodeList &m_ci;
129 bool m_hide;
132 QCString m_langExt;
133
135 {
137 char type;
138 };
139 static const int maxIndentLevels = 13;
140
141 std::array<ManListItemInfo,maxIndentLevels> m_listItemInfo;
142};
143
144#endif
std::array< ManListItemInfo, maxIndentLevels > m_listItemInfo
void filter(const QCString &str)
TextStream & m_t
void operator()(const DocWord &)
OutputCodeList & m_ci
QCString m_langExt
static const int maxIndentLevels
void visitChildren(const T &t)
ManDocVisitor(TextStream &t, OutputCodeList &ci, const QCString &langExt)
Class representing a list of different code generators.
Definition outputlist.h:164
Text streaming class that buffers data.
Definition textstream.h:36