Warning: That file was not part of the compilation database. It may have many parsing errors.

1/****************************************************************************
2**
3** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4** Contact: http://www.qt-project.org/legal
5**
6** This file is part of the tools applications of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:LGPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and Digia. For licensing terms and
14** conditions see http://qt.digia.com/licensing. For further information
15** use the contact form at http://qt.digia.com/contact-us.
16**
17** GNU Lesser General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU Lesser
19** General Public License version 2.1 as published by the Free Software
20** Foundation and appearing in the file LICENSE.LGPL included in the
21** packaging of this file. Please review the following information to
22** ensure the GNU Lesser General Public License version 2.1 requirements
23** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24**
25** In addition, as a special exception, Digia gives you certain additional
26** rights. These rights are described in the Digia Qt LGPL Exception
27** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28**
29** GNU General Public License Usage
30** Alternatively, this file may be used under the terms of the GNU
31** General Public License version 3.0 as published by the Free Software
32** Foundation and appearing in the file LICENSE.GPL included in the
33** packaging of this file. Please review the following information to
34** ensure the GNU General Public License version 3.0 requirements will be
35** met: http://www.gnu.org/copyleft/gpl.html.
36**
37**
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42/*
43 atom.h
44*/
45
46#ifndef ATOM_H
47#define ATOM_H
48
49#include <qstringlist.h>
50
51#define QDOC_QML
52
53QT_BEGIN_NAMESPACE
54
55class Atom
56{
57 public:
58 enum Type {
59 AbstractLeft,
60 AbstractRight,
61 AnnotatedList,
62 AutoLink,
63 BaseName,
64 BriefLeft,
65 BriefRight,
66 C,
67 CaptionLeft,
68 CaptionRight,
69 Code,
70 CodeBad,
71 CodeNew,
72 CodeOld,
73 CodeQuoteArgument,
74 CodeQuoteCommand,
75 DivLeft,
76 DivRight,
77 EndQmlText,
78 FootnoteLeft,
79 FootnoteRight,
80 FormatElse,
81 FormatEndif,
82 FormatIf,
83 FormattingLeft,
84 FormattingRight,
85 GeneratedList,
86 GuidLink,
87 Image,
88 ImageText,
89 InlineImage,
90 JavaScript,
91 EndJavaScript,
92 LegaleseLeft,
93 LegaleseRight,
94 LineBreak,
95 Link,
96 LinkNode,
97 ListLeft,
98 ListItemNumber,
99 ListTagLeft,
100 ListTagRight,
101 ListItemLeft,
102 ListItemRight,
103 ListRight,
104 Nop,
105 ParaLeft,
106 ParaRight,
107 Qml,
108 QmlText,
109 QuotationLeft,
110 QuotationRight,
111 RawString,
112 SectionLeft,
113 SectionRight,
114 SectionHeadingLeft,
115 SectionHeadingRight,
116 SidebarLeft,
117 SidebarRight,
118 SinceList,
119 SnippetCommand,
120 SnippetIdentifier,
121 SnippetLocation,
122 String,
123 TableLeft,
124 TableRight,
125 TableHeaderLeft,
126 TableHeaderRight,
127 TableRowLeft,
128 TableRowRight,
129 TableItemLeft,
130 TableItemRight,
131 TableOfContents,
132 Target,
133 UnhandledFormat,
134 UnknownCommand,
135 Last = UnknownCommand
136 };
137
138 Atom(Type type, const QString& string = "")
139 : nxt(0), typ(type)
140 {
141 strs << string;
142 }
143
144 Atom(Type type, const QString& p1, const QString& p2)
145 : nxt(0), typ(type)
146 {
147 strs << p1;
148 if (!p2.isEmpty())
149 strs << p2;
150 }
151
152 Atom(Atom* prev, Type type, const QString& string = "")
153 : nxt(prev->nxt), typ(type)
154 {
155 strs << string;
156 prev->nxt = this;
157 }
158
159 Atom(Atom* prev, Type type, const QString& p1, const QString& p2)
160 : nxt(prev->nxt), typ(type)
161 {
162 strs << p1;
163 if (!p2.isEmpty())
164 strs << p2;
165 prev->nxt = this;
166 }
167
168 void appendChar(QChar ch) { strs[0] += ch; }
169 void appendString(const QString& string) { strs[0] += string; }
170 void chopString() { strs[0].chop(1); }
171 void setString(const QString& string) { strs[0] = string; }
172 Atom* next() { return nxt; }
173 void setNext(Atom* newNext) { nxt = newNext; }
174
175 const Atom* next() const { return nxt; }
176 const Atom* next(Type t) const;
177 const Atom* next(Type t, const QString& s) const;
178 Type type() const { return typ; }
179 QString typeString() const;
180 const QString& string() const { return strs[0]; }
181 const QString& string(int i) const { return strs[i]; }
182 int count() const { return strs.size(); }
183 void dump() const;
184
185 static QString BOLD_;
186 static QString INDEX_;
187 static QString ITALIC_;
188 static QString LINK_;
189 static QString PARAMETER_;
190 static QString SPAN_;
191 static QString SUBSCRIPT_;
192 static QString SUPERSCRIPT_;
193 static QString TELETYPE_;
194 static QString UNDERLINE_;
195
196 static QString BULLET_;
197 static QString TAG_;
198 static QString VALUE_;
199 static QString LOWERALPHA_;
200 static QString LOWERROMAN_;
201 static QString NUMERIC_;
202 static QString UPPERALPHA_;
203 static QString UPPERROMAN_;
204
205 private:
206 Atom* nxt;
207 Type typ;
208 QStringList strs;
209};
210
211#define ATOM_FORMATTING_BOLD "bold"
212#define ATOM_FORMATTING_INDEX "index"
213#define ATOM_FORMATTING_ITALIC "italic"
214#define ATOM_FORMATTING_LINK "link"
215#define ATOM_FORMATTING_PARAMETER "parameter"
216#define ATOM_FORMATTING_SPAN "span "
217#define ATOM_FORMATTING_SUBSCRIPT "subscript"
218#define ATOM_FORMATTING_SUPERSCRIPT "superscript"
219#define ATOM_FORMATTING_TELETYPE "teletype"
220#define ATOM_FORMATTING_UNDERLINE "underline"
221
222#define ATOM_LIST_BULLET "bullet"
223#define ATOM_LIST_TAG "tag"
224#define ATOM_LIST_VALUE "value"
225#define ATOM_LIST_LOWERALPHA "loweralpha"
226#define ATOM_LIST_LOWERROMAN "lowerroman"
227#define ATOM_LIST_NUMERIC "numeric"
228#define ATOM_LIST_UPPERALPHA "upperalpha"
229#define ATOM_LIST_UPPERROMAN "upperroman"
230
231QT_END_NAMESPACE
232
233#endif
234

Warning: That file was not part of the compilation database. It may have many parsing errors.