Line data Source code
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 :
23 : using GLib;
24 :
25 : public 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 : PARTIAL,
119 : PERCENT,
120 : PLUS,
121 : PRIVATE,
122 : PROTECTED,
123 : PUBLIC,
124 : REAL_LITERAL,
125 : REF,
126 : REGEX_LITERAL,
127 : REQUIRES,
128 : RETURN,
129 : SEALED,
130 : SEMICOLON,
131 : SET,
132 : SIGNAL,
133 : SIZEOF,
134 : STAR,
135 : STATIC,
136 : STRING_LITERAL,
137 : STRUCT,
138 : SWITCH,
139 : TEMPLATE_STRING_LITERAL,
140 : THIS,
141 : THROW,
142 : THROWS,
143 : TILDE,
144 : TRUE,
145 : TRY,
146 : TYPEOF,
147 : UNLOCK,
148 : UNOWNED,
149 : USING,
150 : VAR,
151 : VERBATIM_STRING_LITERAL,
152 : VERBATIM_TEMPLATE_STRING_LITERAL,
153 : VIRTUAL,
154 : VOID,
155 : VOLATILE,
156 : WEAK,
157 : WHILE,
158 : WITH,
159 : YIELD;
160 :
161 : public unowned string to_string () {
162 79 : switch (this) {
163 79 : case ABSTRACT: return "`abstract'";
164 0 : case AS: return "`as'";
165 50 : case ASSIGN: return "`='";
166 0 : case ASSIGN_ADD: return "`+='";
167 0 : case ASSIGN_BITWISE_AND: return "`&='";
168 0 : case ASSIGN_BITWISE_OR: return "`|='";
169 0 : case ASSIGN_BITWISE_XOR: return "`^='";
170 0 : case ASSIGN_DIV: return "`/='";
171 0 : case ASSIGN_MUL: return "`*='";
172 0 : case ASSIGN_PERCENT: return "`%='";
173 0 : case ASSIGN_SHIFT_LEFT: return "`<<='";
174 0 : case ASSIGN_SUB: return "`-='";
175 0 : case ASYNC: return "`async'";
176 0 : case BASE: return "`base'";
177 0 : case BITWISE_AND: return "`&'";
178 0 : case BITWISE_OR: return "`|'";
179 0 : case BREAK: return "`break'";
180 0 : case CARRET: return "`^'";
181 0 : case CASE: return "`case'";
182 0 : case CATCH: return "`catch'";
183 0 : case CHARACTER_LITERAL: return "character literal";
184 1 : case CLASS: return "`class'";
185 1 : case CLOSE_BRACE: return "`}'";
186 0 : case CLOSE_BRACKET: return "`]'";
187 4 : case CLOSE_PARENS: return "`)'";
188 0 : case CLOSE_REGEX_LITERAL: return "`/'";
189 0 : case CLOSE_TEMPLATE: return "close template";
190 2 : case COLON: return "`:'";
191 0 : case COMMA: return "`,'";
192 0 : case CONST: return "`const'";
193 0 : case CONSTRUCT: return "`construct'";
194 0 : case CONTINUE: return "`continue'";
195 0 : case DEFAULT: return "`default'";
196 0 : case DELEGATE: return "`delegate'";
197 0 : case DELETE: return "`delete'";
198 0 : case DIV: return "`/'";
199 0 : case DO: return "`do'";
200 0 : case DOUBLE_COLON: return "`::'";
201 0 : case DOT: return "`.'";
202 0 : case DYNAMIC: return "`dynamic'";
203 0 : case ELLIPSIS: return "`...'";
204 0 : case ELSE: return "`else'";
205 0 : case ENUM: return "`enum'";
206 0 : case ENSURES: return "`ensures'";
207 0 : case ERRORDOMAIN: return "`errordomain'";
208 0 : case EOF: return "end of file";
209 0 : case EXTERN: return "`extern'";
210 0 : case FALSE: return "`false'";
211 0 : case FINALLY: return "`finally'";
212 0 : case FOR: return "`for'";
213 0 : case FOREACH: return "`foreach'";
214 0 : case GET: return "`get'";
215 0 : case HASH: return "`#'";
216 0 : case IDENTIFIER: return "identifier";
217 0 : case IF: return "`if'";
218 0 : case IN: return "`in'";
219 0 : case INLINE: return "`inline'";
220 0 : case INTEGER_LITERAL: return "integer literal";
221 0 : case INTERFACE: return "`interface'";
222 0 : case INTERNAL: return "`internal'";
223 0 : case INTERR: return "`?'";
224 0 : case IS: return "`is'";
225 0 : case LAMBDA: return "`=>'";
226 0 : case LOCK: return "`lock'";
227 0 : case MINUS: return "`-'";
228 0 : case NAMESPACE: return "`namespace'";
229 0 : case NEW: return "`new'";
230 0 : case NULL: return "`null'";
231 0 : case OUT: return "`out'";
232 0 : case OP_AND: return "`&&'";
233 0 : case OP_COALESCING: return "`??'";
234 0 : case OP_DEC: return "`--'";
235 0 : case OP_EQ: return "`=='";
236 0 : case OP_GE: return "`>='";
237 0 : case OP_GT: return "`>'";
238 0 : case OP_INC: return "`++'";
239 0 : case OP_LE: return "`<='";
240 0 : case OP_LT: return "`<'";
241 0 : case OP_NE: return "`!='";
242 0 : case OP_NEG: return "`!'";
243 0 : case OP_OR: return "`||'";
244 0 : case OP_PTR: return "`->'";
245 0 : case OP_SHIFT_LEFT: return "`<<'";
246 1 : case OPEN_BRACE: return "`{'";
247 0 : case OPEN_BRACKET: return "`['";
248 8 : case OPEN_PARENS: return "`('";
249 0 : case OPEN_REGEX_LITERAL: return "`/'";
250 0 : case OPEN_TEMPLATE: return "open template";
251 0 : case OVERRIDE: return "`override'";
252 0 : case OWNED: return "`owned'";
253 0 : case PARAMS: return "`params'";
254 0 : case PARTIAL: return "`partial'";
255 0 : case PERCENT: return "`%'";
256 0 : case PLUS: return "`+'";
257 0 : case PRIVATE: return "`private'";
258 0 : case PROTECTED: return "`protected'";
259 0 : case PUBLIC: return "`public'";
260 0 : case REAL_LITERAL: return "real literal";
261 0 : case REF: return "`ref'";
262 0 : case REGEX_LITERAL: return "regex literal";
263 0 : case REQUIRES: return "`requires'";
264 0 : case RETURN: return "`return'";
265 0 : case SEALED: return "`sealed'";
266 12 : case SEMICOLON: return "`;'";
267 0 : case SET: return "`set'";
268 0 : case SIGNAL: return "`signal'";
269 0 : case SIZEOF: return "`sizeof'";
270 0 : case STAR: return "`*'";
271 0 : case STATIC: return "`static'";
272 0 : case STRING_LITERAL: return "string literal";
273 0 : case STRUCT: return "`struct'";
274 0 : case SWITCH: return "`switch'";
275 0 : case TEMPLATE_STRING_LITERAL: return "template string literal";
276 0 : case THIS: return "`this'";
277 0 : case THROW: return "`throw'";
278 0 : case THROWS: return "`throws'";
279 0 : case TILDE: return "`~'";
280 0 : case TRUE: return "`true'";
281 0 : case TRY: return "`try'";
282 0 : case TYPEOF: return "`typeof'";
283 0 : case UNLOCK: return "`unlock'";
284 0 : case UNOWNED: return "`unowned'";
285 0 : case USING: return "`using'";
286 0 : case VAR: return "`var'";
287 0 : case VERBATIM_STRING_LITERAL: return "verbatim string literal";
288 0 : case VERBATIM_TEMPLATE_STRING_LITERAL: return "verbatim template string literal";
289 0 : case VIRTUAL: return "`virtual'";
290 0 : case VOID: return "`void'";
291 0 : case VOLATILE: return "`volatile'";
292 0 : case WEAK: return "`weak'";
293 0 : case WHILE: return "`while'";
294 0 : case WITH: return "`with'";
295 0 : case YIELD: return "`yield'";
296 0 : default: return "unknown token";
297 : }
298 : }
299 : }
300 :
|