1 /****************************************************************************
2 **
3 ** Copyright (C) 2015 The Qt Company Ltd.
4 ** Contact: http://www.qt.io/licensing/
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 The Qt Company. For licensing terms
14 ** and conditions see http://www.qt.io/terms-conditions. For further
15 ** information use the contact form at http://www.qt.io/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 or version 3 as published by the Free
20 ** Software Foundation and appearing in the file LICENSE.LGPLv21 and
21 ** LICENSE.LGPLv3 included in the packaging of this file. Please review the
22 ** following information to ensure the GNU Lesser General Public License
23 ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
24 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25 **
26 ** As a special exception, The Qt Company gives you certain additional
27 ** rights. These rights are described in The Qt Company LGPL Exception
28 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29 **
30 ** GNU General Public License Usage
31 ** Alternatively, this file may be used under the terms of the GNU
32 ** General Public License version 3.0 as published by the Free Software
33 ** Foundation and appearing in the file LICENSE.GPL included in the
34 ** packaging of this file.  Please review the following information to
35 ** ensure the GNU General Public License version 3.0 requirements will be
36 ** met: http://www.gnu.org/copyleft/gpl.html.
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41 
42 #ifndef TOKEN_H
43 #define TOKEN_H
44 
45 #include <QtCore/qglobal.h>
46 
47 QT_BEGIN_NAMESPACE
48 
49 enum Token {
50     NOTOKEN,
51     IDENTIFIER,
52     INTEGER_LITERAL,
53     CHARACTER_LITERAL,
54     STRING_LITERAL,
55     BOOLEAN_LITERAL,
56     HEADER_NAME,
57     LANGLE,
58     RANGLE,
59     LPAREN,
60     RPAREN,
61     ELIPSIS,
62     LBRACK,
63     RBRACK,
64     LBRACE,
65     RBRACE,
66     EQ,
67     SCOPE,
68     SEMIC,
69     COLON,
70     DOTSTAR,
71     QUESTION,
72     DOT,
73     DYNAMIC_CAST,
74     STATIC_CAST,
75     REINTERPRET_CAST,
76     CONST_CAST,
77     TYPEID,
78     THIS,
79     TEMPLATE,
80     THROW,
81     TRY,
82     CATCH,
83     TYPEDEF,
84     FRIEND,
85     CLASS,
86     NAMESPACE,
87     ENUM,
88     STRUCT,
89     UNION,
90     VIRTUAL,
91     PRIVATE,
92     PROTECTED,
93     PUBLIC,
94     EXPORT,
95     AUTO,
96     REGISTER,
97     EXTERN,
98     MUTABLE,
99     ASM,
100     USING,
101     INLINE,
102     EXPLICIT,
103     STATIC,
104     CONST,
105     VOLATILE,
106     OPERATOR,
107     SIZEOF,
108     NEW,
109     DELETE,
110     PLUS,
111     MINUS,
112     STAR,
113     SLASH,
114     PERCENT,
115     HAT,
116     AND,
117     OR,
118     TILDE,
119     NOT,
120     PLUS_EQ,
121     MINUS_EQ,
122     STAR_EQ,
123     SLASH_EQ,
124     PERCENT_EQ,
125     HAT_EQ,
126     AND_EQ,
127     OR_EQ,
128     LTLT,
129     GTGT,
130     GTGT_EQ,
131     LTLT_EQ,
132     EQEQ,
133     NE,
134     LE,
135     GE,
136     ANDAND,
137     OROR,
138     INCR,
139     DECR,
140     COMMA,
141     ARROW_STAR,
142     ARROW,
143     CHAR,
144     WCHAR,
145     BOOL,
146     SHORT,
147     INT,
148     LONG,
149     SIGNED,
150     UNSIGNED,
151     FLOAT,
152     DOUBLE,
153     VOID,
154     CASE,
155     DEFAULT,
156     IF,
157     ELSE,
158     SWITCH,
159     WHILE,
160     DO,
161     FOR,
162     BREAK,
163     CONTINUE,
164     GOTO,
165     SIGNALS,
166     SLOTS,
167     RETURN,
168     Q_META_TOKEN_BEGIN,
169     Q_OBJECT_TOKEN = Q_META_TOKEN_BEGIN,
170     Q_GADGET_TOKEN,
171     Q_PROPERTY_TOKEN,
172     Q_ENUMS_TOKEN,
173     Q_FLAGS_TOKEN,
174     Q_DECLARE_FLAGS_TOKEN,
175     Q_DECLARE_INTERFACE_TOKEN,
176     Q_DECLARE_METATYPE_TOKEN,
177     Q_CLASSINFO_TOKEN,
178     Q_INTERFACES_TOKEN,
179     Q_SIGNALS_TOKEN,
180     Q_SLOTS_TOKEN,
181     Q_SIGNAL_TOKEN,
182     Q_SLOT_TOKEN,
183     Q_PRIVATE_SLOT_TOKEN,
184     Q_MOC_COMPAT_TOKEN,
185     Q_QT3_SUPPORT_TOKEN,
186     Q_INVOKABLE_TOKEN,
187     Q_SCRIPTABLE_TOKEN,
188     Q_PRIVATE_PROPERTY_TOKEN,
189     Q_REVISION_TOKEN,
190     Q_META_TOKEN_END,
191     SPECIAL_TREATMENT_MARK = Q_META_TOKEN_END,
192     MOC_INCLUDE_BEGIN,
193     MOC_INCLUDE_END,
194     CPP_COMMENT,
195     C_COMMENT,
196     FLOATING_LITERAL,
197     HASH,
198     QUOTE,
199     SINGLEQUOTE,
200     LANGLE_SCOPE,
201     DIGIT,
202     CHARACTER,
203     NEWLINE,
204     WHITESPACE,
205     BACKSLASH,
206     INCOMPLETE,
207 
208     PP_DEFINE,
209     PP_UNDEF,
210     PP_IF,
211     PP_IFDEF,
212     PP_IFNDEF,
213     PP_ELIF,
214     PP_ELSE,
215     PP_ENDIF,
216     PP_INCLUDE,
217     PP_HASHHASH,
218     PP_HASH,
219     PP_DEFINED,
220     PP_INCOMPLETE,
221 
222     PP_MOC_TRUE,
223     PP_MOC_FALSE,
224 
225     PP_NOTOKEN = NOTOKEN,
226     PP_IDENTIFIER = IDENTIFIER,
227     PP_INTEGER_LITERAL = INTEGER_LITERAL,
228     PP_CHARACTER_LITERAL = CHARACTER_LITERAL,
229     PP_STRING_LITERAL = STRING_LITERAL,
230     PP_LANGLE = LANGLE,
231     PP_RANGLE = RANGLE,
232     PP_LPAREN = LPAREN,
233     PP_RPAREN = RPAREN,
234     PP_COMMA = COMMA,
235     PP_PLUS = PLUS,
236     PP_MINUS = MINUS,
237     PP_STAR = STAR,
238     PP_SLASH = SLASH,
239     PP_PERCENT = PERCENT,
240     PP_HAT = HAT,
241     PP_AND = AND,
242     PP_OR = OR,
243     PP_TILDE = TILDE,
244     PP_NOT = NOT,
245     PP_LTLT = LTLT,
246     PP_GTGT = GTGT,
247     PP_EQEQ = EQEQ,
248     PP_NE = NE,
249     PP_LE = LE,
250     PP_GE = GE,
251     PP_ANDAND = ANDAND,
252     PP_OROR = OROR,
253     PP_QUESTION = QUESTION,
254     PP_COLON = COLON,
255     PP_FLOATING_LITERAL = FLOATING_LITERAL,
256     PP_QUOTE = QUOTE,
257     PP_SINGLEQUOTE = SINGLEQUOTE,
258     PP_DIGIT = DIGIT,
259     PP_CHARACTER = CHARACTER,
260     PP_WHITESPACE = WHITESPACE,
261     PP_NEWLINE = NEWLINE,
262     PP_CPP_COMMENT = CPP_COMMENT,
263     PP_C_COMMENT = C_COMMENT,
264     PP_BACKSLASH = BACKSLASH
265 };
266 
267 // for debugging only
268 #if defined(DEBUG_MOC)
269 const char *tokenTypeName(Token t);
270 #endif
271 
272 typedef Token PP_Token;
273 
274 QT_END_NAMESPACE
275 
276 #endif // TOKEN_H
277