1/* valatokentype.vala
2 *
3 * Copyright (C) 2008-2010  Jürg Billeter
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 * Lesser General Public License for more details.
14
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
18 *
19 * Author:
20 * 	Jürg Billeter <j@bitron.ch>
21 */
22
23using GLib;
24
25public enum Vala.TokenType {
26	NONE,
27	ABSTRACT,
28	AS,
29	ASSIGN,
30	ASSIGN_ADD,
31	ASSIGN_BITWISE_AND,
32	ASSIGN_BITWISE_OR,
33	ASSIGN_BITWISE_XOR,
34	ASSIGN_DIV,
35	ASSIGN_MUL,
36	ASSIGN_PERCENT,
37	ASSIGN_SHIFT_LEFT,
38	ASSIGN_SUB,
39	ASYNC,
40	BASE,
41	BITWISE_AND,
42	BITWISE_OR,
43	BREAK,
44	CARRET,
45	CASE,
46	CATCH,
47	CHARACTER_LITERAL,
48	CLASS,
49	CLOSE_BRACE,
50	CLOSE_BRACKET,
51	CLOSE_PARENS,
52	CLOSE_REGEX_LITERAL,
53	CLOSE_TEMPLATE,
54	COLON,
55	COMMA,
56	CONST,
57	CONSTRUCT,
58	CONTINUE,
59	DEFAULT,
60	DELEGATE,
61	DELETE,
62	DIV,
63	DO,
64	DOUBLE_COLON,
65	DOT,
66	DYNAMIC,
67	ELLIPSIS,
68	ELSE,
69	ENUM,
70	ENSURES,
71	ERRORDOMAIN,
72	EOF,
73	EXTERN,
74	FALSE,
75	FINALLY,
76	FOR,
77	FOREACH,
78	GET,
79	HASH,
80	IDENTIFIER,
81	IF,
82	IN,
83	INLINE,
84	INTEGER_LITERAL,
85	INTERFACE,
86	INTERNAL,
87	INTERR,
88	IS,
89	LAMBDA,
90	LOCK,
91	MINUS,
92	NAMESPACE,
93	NEW,
94	NULL,
95	OUT,
96	OP_AND,
97	OP_COALESCING,
98	OP_DEC,
99	OP_EQ,
100	OP_GE,
101	OP_GT,
102	OP_INC,
103	OP_LE,
104	OP_LT,
105	OP_NE,
106	OP_NEG,
107	OP_OR,
108	OP_PTR,
109	OP_SHIFT_LEFT,
110	OPEN_BRACE,
111	OPEN_BRACKET,
112	OPEN_PARENS,
113	OPEN_REGEX_LITERAL,
114	OPEN_TEMPLATE,
115	OVERRIDE,
116	OWNED,
117	PARAMS,
118	PERCENT,
119	PLUS,
120	PRIVATE,
121	PROTECTED,
122	PUBLIC,
123	REAL_LITERAL,
124	REF,
125	REGEX_LITERAL,
126	REQUIRES,
127	RETURN,
128	SEALED,
129	SEMICOLON,
130	SET,
131	SIGNAL,
132	SIZEOF,
133	STAR,
134	STATIC,
135	STRING_LITERAL,
136	STRUCT,
137	SWITCH,
138	TEMPLATE_STRING_LITERAL,
139	THIS,
140	THROW,
141	THROWS,
142	TILDE,
143	TRUE,
144	TRY,
145	TYPEOF,
146	UNLOCK,
147	UNOWNED,
148	USING,
149	VAR,
150	VERBATIM_STRING_LITERAL,
151	VIRTUAL,
152	VOID,
153	VOLATILE,
154	WEAK,
155	WHILE,
156	YIELD;
157
158	public unowned string to_string () {
159		switch (this) {
160		case ABSTRACT: return "`abstract'";
161		case AS: return "`as'";
162		case ASSIGN: return "`='";
163		case ASSIGN_ADD: return "`+='";
164		case ASSIGN_BITWISE_AND: return "`&='";
165		case ASSIGN_BITWISE_OR: return "`|='";
166		case ASSIGN_BITWISE_XOR: return "`^='";
167		case ASSIGN_DIV: return "`/='";
168		case ASSIGN_MUL: return "`*='";
169		case ASSIGN_PERCENT: return "`%='";
170		case ASSIGN_SHIFT_LEFT: return "`<<='";
171		case ASSIGN_SUB: return "`-='";
172		case ASYNC: return "`async'";
173		case BASE: return "`base'";
174		case BITWISE_AND: return "`&'";
175		case BITWISE_OR: return "`|'";
176		case BREAK: return "`break'";
177		case CARRET: return "`^'";
178		case CASE: return "`case'";
179		case CATCH: return "`catch'";
180		case CHARACTER_LITERAL: return "character literal";
181		case CLASS: return "`class'";
182		case CLOSE_BRACE: return "`}'";
183		case CLOSE_BRACKET: return "`]'";
184		case CLOSE_PARENS: return "`)'";
185		case CLOSE_REGEX_LITERAL: return "`/'";
186		case CLOSE_TEMPLATE: return "close template";
187		case COLON: return "`:'";
188		case COMMA: return "`,'";
189		case CONST: return "`const'";
190		case CONSTRUCT: return "`construct'";
191		case CONTINUE: return "`continue'";
192		case DEFAULT: return "`default'";
193		case DELEGATE: return "`delegate'";
194		case DELETE: return "`delete'";
195		case DIV: return "`/'";
196		case DO: return "`do'";
197		case DOUBLE_COLON: return "`::'";
198		case DOT: return "`.'";
199		case DYNAMIC: return "`dynamic'";
200		case ELLIPSIS: return "`...'";
201		case ELSE: return "`else'";
202		case ENUM: return "`enum'";
203		case ENSURES: return "`ensures'";
204		case ERRORDOMAIN: return "`errordomain'";
205		case EOF: return "end of file";
206		case EXTERN: return "`extern'";
207		case FALSE: return "`false'";
208		case FINALLY: return "`finally'";
209		case FOR: return "`for'";
210		case FOREACH: return "`foreach'";
211		case GET: return "`get'";
212		case HASH: return "`#'";
213		case IDENTIFIER: return "identifier";
214		case IF: return "`if'";
215		case IN: return "`in'";
216		case INLINE: return "`inline'";
217		case INTEGER_LITERAL: return "integer literal";
218		case INTERFACE: return "`interface'";
219		case INTERNAL: return "`internal'";
220		case INTERR: return "`?'";
221		case IS: return "`is'";
222		case LAMBDA: return "`=>'";
223		case LOCK: return "`lock'";
224		case MINUS: return "`-'";
225		case NAMESPACE: return "`namespace'";
226		case NEW: return "`new'";
227		case NULL: return "`null'";
228		case OUT: return "`out'";
229		case OP_AND: return "`&&'";
230		case OP_COALESCING: return "`??'";
231		case OP_DEC: return "`--'";
232		case OP_EQ: return "`=='";
233		case OP_GE: return "`>='";
234		case OP_GT: return "`>'";
235		case OP_INC: return "`++'";
236		case OP_LE: return "`<='";
237		case OP_LT: return "`<'";
238		case OP_NE: return "`!='";
239		case OP_NEG: return "`!'";
240		case OP_OR: return "`||'";
241		case OP_PTR: return "`->'";
242		case OP_SHIFT_LEFT: return "`<<'";
243		case OPEN_BRACE: return "`{'";
244		case OPEN_BRACKET: return "`['";
245		case OPEN_PARENS: return "`('";
246		case OPEN_REGEX_LITERAL: return "`/'";
247		case OPEN_TEMPLATE: return "open template";
248		case OVERRIDE: return "`override'";
249		case OWNED: return "`owned'";
250		case PARAMS: return "`params'";
251		case PERCENT: return "`%'";
252		case PLUS: return "`+'";
253		case PRIVATE: return "`private'";
254		case PROTECTED: return "`protected'";
255		case PUBLIC: return "`public'";
256		case REAL_LITERAL: return "real literal";
257		case REF: return "`ref'";
258		case REGEX_LITERAL: return "regex literal";
259		case REQUIRES: return "`requires'";
260		case RETURN: return "`return'";
261		case SEALED: return "`sealed'";
262		case SEMICOLON: return "`;'";
263		case SET: return "`set'";
264		case SIGNAL: return "`signal'";
265		case SIZEOF: return "`sizeof'";
266		case STAR: return "`*'";
267		case STATIC: return "`static'";
268		case STRING_LITERAL: return "string literal";
269		case STRUCT: return "`struct'";
270		case SWITCH: return "`switch'";
271		case TEMPLATE_STRING_LITERAL: return "template string literal";
272		case THIS: return "`this'";
273		case THROW: return "`throw'";
274		case THROWS: return "`throws'";
275		case TILDE: return "`~'";
276		case TRUE: return "`true'";
277		case TRY: return "`try'";
278		case TYPEOF: return "`typeof'";
279		case UNLOCK: return "`unlock'";
280		case UNOWNED: return "`unowned'";
281		case USING: return "`using'";
282		case VAR: return "`var'";
283		case VERBATIM_STRING_LITERAL: return "verbatim string literal";
284		case VIRTUAL: return "`virtual'";
285		case VOID: return "`void'";
286		case VOLATILE: return "`volatile'";
287		case WEAK: return "`weak'";
288		case WHILE: return "`while'";
289		case YIELD: return "`yield'";
290		default: return "unknown token";
291		}
292	}
293}
294
295