Skip to content

Latest commit

 

History

History
1486 lines (1456 loc) · 28.2 KB

mojoshader_lexer.c

File metadata and controls

1486 lines (1456 loc) · 28.2 KB
 
Feb 18, 2009
Feb 18, 2009
1
/* Generated by re2c 0.13.5 */
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
* MojoShader; generate shader programs from bytecode of compiled
* Direct3D shaders.
*
* Please see the file LICENSE.txt in the source's root directory.
*
* This file written by Ryan C. Gordon.
*/
// This was originally based on examples/pp-c.re from re2c: http://re2c.org/
// re2c is public domain code.
//
// You build mojoshader_lexer_preprocessor.c from the .re file with re2c...
// re2c -is -o mojoshader_lexer_preprocessor.c mojoshader_lexer_preprocessor.re
//
// Changes to the lexer are done to the .re file, not the C code!
//
// Please note that this isn't a perfect C lexer, since it is used for both
// HLSL and shader assembly language, and follows the quirks of Microsoft's
// tools.
#define __MOJOSHADER_INTERNAL__ 1
#include "mojoshader_internal.h"
typedef unsigned char uchar;
Feb 18, 2009
Feb 18, 2009
28
29
#define YYMAXFILL 8
#define RET(t) do { return update_state(s, eoi, cursor, token, t); } while (0)
30
31
32
33
#define YYCTYPE uchar
#define YYCURSOR cursor
#define YYLIMIT limit
#define YYMARKER s->lexer_marker
Feb 18, 2009
Feb 18, 2009
34
#define YYFILL(n) { if ((n) == 1) { cursor = sentinel; limit = cursor + YYMAXFILL; eoi = 1; } }
Feb 18, 2009
Feb 18, 2009
36
37
38
39
static uchar sentinel[YYMAXFILL];
static Token update_state(IncludeState *s, int eoi, const uchar *cur,
const uchar *tok, const Token val)
Feb 18, 2009
Feb 18, 2009
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
if (eoi)
{
s->bytes_left = 0;
s->source = (const char *) s->source_base + s->orig_length;
if ( (tok >= sentinel) && (tok < (sentinel+YYMAXFILL)) )
s->token = s->source;
else
s->token = (const char *) tok;
} // if
else
{
s->bytes_left -= (unsigned int) (cur - ((const uchar *) s->source));
s->source = (const char *) cur;
s->token = (const char *) tok;
} // else
s->tokenlen = (unsigned int) (s->source - s->token);
s->tokenval = val;
return val;
59
60
} // update_state
Feb 18, 2009
Feb 18, 2009
61
Token preprocessor_lexer(IncludeState *s)
62
63
{
const uchar *cursor = (const uchar *) s->source;
Feb 22, 2009
Feb 22, 2009
64
const uchar *token = cursor;
Feb 13, 2009
Feb 13, 2009
65
const uchar *matchptr;
66
const uchar *limit = cursor + s->bytes_left;
Feb 18, 2009
Feb 18, 2009
67
int eoi = 0;
Feb 12, 2009
Feb 12, 2009
68
int saw_newline = 0;
Feb 22, 2009
Feb 22, 2009
70
71
72
73
74
75
// preprocessor directives are only valid at start of line.
if (s->tokenval == ((Token) '\n'))
goto ppdirective; // may jump back to scanner_loop.
76
scanner_loop:
Feb 18, 2009
Feb 18, 2009
77
if (YYLIMIT == YYCURSOR) YYFILL(1);
78
79
80
81
82
83
84
token = cursor;
{
YYCTYPE yych;
unsigned int yyaccept = 0;
Feb 22, 2009
Feb 22, 2009
85
if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
86
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
switch (yych) {
case 0x00: goto yy60;
case '\t':
case '\v':
case '\f':
case ' ': goto yy62;
case '\n': goto yy64;
case '\r': goto yy66;
case '!': goto yy35;
case '"': goto yy14;
case '#': goto yy37;
case '%': goto yy25;
case '&': goto yy29;
case '\'': goto yy11;
case '(': goto yy38;
case ')': goto yy40;
case '*': goto yy23;
case '+': goto yy19;
case ',': goto yy46;
case '-': goto yy21;
case '.': goto yy12;
case '/': goto yy4;
case '0': goto yy8;
110
111
112
113
114
115
116
117
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
Feb 18, 2009
Feb 18, 2009
118
119
case '9': goto yy10;
case ':': goto yy50;
Feb 24, 2009
Feb 24, 2009
120
case ';': goto yy58;
Feb 18, 2009
Feb 18, 2009
121
122
123
case '<': goto yy17;
case '=': goto yy33;
case '>': goto yy15;
Feb 24, 2009
Feb 24, 2009
124
case '?': goto yy56;
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '_':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
Feb 18, 2009
Feb 18, 2009
177
178
179
180
181
case 'z': goto yy6;
case '[': goto yy42;
case '\\': goto yy2;
case ']': goto yy44;
case '^': goto yy27;
Feb 24, 2009
Feb 24, 2009
182
case '{': goto yy52;
Feb 18, 2009
Feb 18, 2009
183
case '|': goto yy31;
Feb 24, 2009
Feb 24, 2009
184
case '}': goto yy54;
Feb 18, 2009
Feb 18, 2009
185
186
case '~': goto yy48;
default: goto yy67;
187
188
}
yy2:
Feb 18, 2009
Feb 18, 2009
189
190
191
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 0x08) goto yy3;
Feb 22, 2009
Feb 22, 2009
192
193
if (yych <= '\r') goto yy176;
if (yych == ' ') goto yy176;
Feb 18, 2009
Feb 18, 2009
194
195
196
yy3:
{ goto bad_chars; }
yy4:
197
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
198
if ((yych = *YYCURSOR) <= '.') {
Feb 22, 2009
Feb 22, 2009
199
if (yych == '*') goto yy173;
Feb 12, 2009
Feb 12, 2009
200
} else {
Feb 22, 2009
Feb 22, 2009
201
202
if (yych <= '/') goto yy171;
if (yych == '=') goto yy169;
Feb 12, 2009
Feb 12, 2009
203
}
204
{ RET('/'); }
Feb 18, 2009
Feb 18, 2009
205
yy6:
206
207
++YYCURSOR;
yych = *YYCURSOR;
Feb 22, 2009
Feb 22, 2009
208
goto yy168;
Feb 18, 2009
Feb 18, 2009
209
yy7:
210
{ RET(TOKEN_IDENTIFIER); }
Feb 18, 2009
Feb 18, 2009
211
212
yy8:
yyaccept = 1;
213
yych = *(YYMARKER = ++YYCURSOR);
Feb 18, 2009
Feb 18, 2009
214
215
if (yych <= 'X') {
if (yych <= 'T') {
Feb 22, 2009
Feb 22, 2009
216
217
if (yych == 'L') goto yy143;
goto yy159;
Feb 18, 2009
Feb 18, 2009
218
} else {
Feb 22, 2009
Feb 22, 2009
219
220
221
if (yych <= 'U') goto yy143;
if (yych <= 'W') goto yy159;
goto yy160;
222
223
}
} else {
Feb 18, 2009
Feb 18, 2009
224
if (yych <= 't') {
Feb 22, 2009
Feb 22, 2009
225
226
if (yych == 'l') goto yy143;
goto yy159;
227
} else {
Feb 22, 2009
Feb 22, 2009
228
229
230
if (yych <= 'u') goto yy143;
if (yych == 'x') goto yy160;
goto yy159;
231
232
233
}
}
yy9:
Feb 18, 2009
Feb 18, 2009
234
235
{ RET(TOKEN_INT_LITERAL); }
yy10:
236
237
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
Feb 22, 2009
Feb 22, 2009
238
goto yy141;
Feb 18, 2009
Feb 18, 2009
240
241
242
243
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych == '\n') goto yy3;
if (yych == '\r') goto yy3;
Feb 22, 2009
Feb 22, 2009
244
goto yy131;
Feb 18, 2009
Feb 18, 2009
246
247
++YYCURSOR;
if ((yych = *YYCURSOR) <= '/') goto yy13;
Feb 22, 2009
Feb 22, 2009
248
if (yych <= '9') goto yy122;
Feb 18, 2009
Feb 18, 2009
250
{ RET('.'); }
Feb 18, 2009
Feb 18, 2009
252
253
254
255
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych == '\n') goto yy3;
if (yych == '\r') goto yy3;
Feb 22, 2009
Feb 22, 2009
256
goto yy112;
257
258
yy15:
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
259
if ((yych = *YYCURSOR) <= '<') goto yy16;
Feb 22, 2009
Feb 22, 2009
260
261
if (yych <= '=') goto yy105;
if (yych <= '>') goto yy107;
Feb 18, 2009
Feb 18, 2009
262
263
yy16:
{ RET('>'); }
Feb 18, 2009
Feb 18, 2009
265
266
++YYCURSOR;
if ((yych = *YYCURSOR) <= ';') goto yy18;
Feb 22, 2009
Feb 22, 2009
267
268
if (yych <= '<') goto yy101;
if (yych <= '=') goto yy99;
Feb 18, 2009
Feb 18, 2009
270
271
{ RET('<'); }
yy19:
272
++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
273
274
if ((yych = *YYCURSOR) == '+') goto yy95;
if (yych == '=') goto yy97;
Feb 12, 2009
Feb 12, 2009
275
{ RET('+'); }
Feb 18, 2009
Feb 18, 2009
276
yy21:
277
++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
278
279
if ((yych = *YYCURSOR) == '-') goto yy91;
if (yych == '=') goto yy93;
Feb 12, 2009
Feb 12, 2009
280
{ RET('-'); }
Feb 18, 2009
Feb 18, 2009
281
yy23:
Feb 12, 2009
Feb 12, 2009
282
++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
283
if ((yych = *YYCURSOR) == '=') goto yy89;
Feb 12, 2009
Feb 12, 2009
284
{ RET('*'); }
Feb 18, 2009
Feb 18, 2009
285
yy25:
Feb 12, 2009
Feb 12, 2009
286
++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
287
if ((yych = *YYCURSOR) == '=') goto yy87;
Feb 12, 2009
Feb 12, 2009
288
{ RET('%'); }
Feb 18, 2009
Feb 18, 2009
289
yy27:
Feb 12, 2009
Feb 12, 2009
290
++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
291
if ((yych = *YYCURSOR) == '=') goto yy85;
Feb 12, 2009
Feb 12, 2009
292
{ RET('^'); }
Feb 18, 2009
Feb 18, 2009
293
yy29:
Feb 12, 2009
Feb 12, 2009
294
++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
295
296
if ((yych = *YYCURSOR) == '&') goto yy81;
if (yych == '=') goto yy83;
Feb 12, 2009
Feb 12, 2009
297
{ RET('&'); }
Feb 18, 2009
Feb 18, 2009
298
yy31:
Feb 12, 2009
Feb 12, 2009
299
++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
300
301
if ((yych = *YYCURSOR) == '=') goto yy79;
if (yych == '|') goto yy77;
302
{ RET('|'); }
Feb 18, 2009
Feb 18, 2009
303
yy33:
304
++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
305
if ((yych = *YYCURSOR) == '=') goto yy75;
306
{ RET('='); }
Feb 18, 2009
Feb 18, 2009
307
yy35:
308
++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
309
if ((yych = *YYCURSOR) == '=') goto yy73;
310
{ RET('!'); }
Feb 18, 2009
Feb 18, 2009
311
yy37:
Feb 22, 2009
Feb 22, 2009
312
313
314
yych = *++YYCURSOR;
if (yych == '#') goto yy71;
goto yy3;
Feb 18, 2009
Feb 18, 2009
315
yy38:
316
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
317
{ RET('('); }
Feb 18, 2009
Feb 18, 2009
318
yy40:
319
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
320
{ RET(')'); }
Feb 18, 2009
Feb 18, 2009
321
yy42:
322
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
323
{ RET('['); }
Feb 18, 2009
Feb 18, 2009
324
yy44:
325
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
326
{ RET(']'); }
Feb 18, 2009
Feb 18, 2009
327
yy46:
328
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
329
{ RET(','); }
Feb 18, 2009
Feb 18, 2009
330
yy48:
331
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
332
{ RET('~'); }
Feb 18, 2009
Feb 18, 2009
333
yy50:
334
335
++YYCURSOR;
{ RET(':'); }
Feb 18, 2009
Feb 18, 2009
336
yy52:
337
++YYCURSOR;
Feb 24, 2009
Feb 24, 2009
338
{ RET('{'); }
Feb 18, 2009
Feb 18, 2009
339
yy54:
340
++YYCURSOR;
Feb 24, 2009
Feb 24, 2009
341
{ RET('}'); }
Feb 18, 2009
Feb 18, 2009
342
yy56:
343
++YYCURSOR;
Feb 24, 2009
Feb 24, 2009
344
{ RET('?'); }
Feb 18, 2009
Feb 18, 2009
345
yy58:
346
++YYCURSOR;
Feb 24, 2009
Feb 24, 2009
347
{ if (s->asm_comments) goto singlelinecomment; RET(';'); }
Feb 18, 2009
Feb 18, 2009
348
yy60:
349
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
350
351
{ if (eoi) { RET(TOKEN_EOI); } goto bad_chars; }
yy62:
352
353
++YYCURSOR;
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
354
goto yy70;
Feb 14, 2009
Feb 14, 2009
355
yy63:
Feb 18, 2009
Feb 18, 2009
356
{ if (s->report_whitespace) RET(' '); goto scanner_loop; }
Feb 14, 2009
Feb 14, 2009
357
yy64:
Feb 18, 2009
Feb 18, 2009
358
++YYCURSOR;
Feb 14, 2009
Feb 14, 2009
359
yy65:
Feb 18, 2009
Feb 18, 2009
360
{ s->line++; RET('\n'); }
361
362
yy66:
yych = *++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
363
364
if (yych == '\n') goto yy68;
goto yy65;
365
366
yy67:
yych = *++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
367
goto yy3;
Feb 18, 2009
Feb 18, 2009
369
370
371
yych = *++YYCURSOR;
goto yy65;
yy69:
372
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
373
if (YYLIMIT <= YYCURSOR) YYFILL(1);
374
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
375
376
377
378
yy70:
if (yych <= '\n') {
if (yych == '\t') goto yy69;
goto yy63;
379
} else {
Feb 18, 2009
Feb 18, 2009
380
381
382
if (yych <= '\f') goto yy69;
if (yych == ' ') goto yy69;
goto yy63;
Feb 18, 2009
Feb 18, 2009
384
yy71:
385
386
++YYCURSOR;
{ RET(TOKEN_HASHHASH); }
Feb 22, 2009
Feb 22, 2009
387
yy73:
388
389
++YYCURSOR;
{ RET(TOKEN_NEQ); }
Feb 22, 2009
Feb 22, 2009
390
yy75:
391
392
++YYCURSOR;
{ RET(TOKEN_EQL); }
Feb 22, 2009
Feb 22, 2009
393
yy77:
394
395
++YYCURSOR;
{ RET(TOKEN_OROR); }
Feb 22, 2009
Feb 22, 2009
396
yy79:
397
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
398
{ RET(TOKEN_ORASSIGN); }
Feb 22, 2009
Feb 22, 2009
399
yy81:
400
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
401
{ RET(TOKEN_ANDAND); }
Feb 22, 2009
Feb 22, 2009
402
yy83:
403
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
404
{ RET(TOKEN_ANDASSIGN); }
Feb 22, 2009
Feb 22, 2009
405
yy85:
406
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
407
{ RET(TOKEN_XORASSIGN); }
Feb 22, 2009
Feb 22, 2009
408
yy87:
409
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
410
{ RET(TOKEN_MODASSIGN); }
Feb 22, 2009
Feb 22, 2009
411
yy89:
Feb 12, 2009
Feb 12, 2009
412
413
++YYCURSOR;
{ RET(TOKEN_MULTASSIGN); }
Feb 22, 2009
Feb 22, 2009
414
yy91:
Feb 12, 2009
Feb 12, 2009
415
416
++YYCURSOR;
{ RET(TOKEN_DECREMENT); }
Feb 22, 2009
Feb 22, 2009
417
yy93:
Feb 12, 2009
Feb 12, 2009
418
419
++YYCURSOR;
{ RET(TOKEN_SUBASSIGN); }
Feb 22, 2009
Feb 22, 2009
420
yy95:
Feb 12, 2009
Feb 12, 2009
421
422
++YYCURSOR;
{ RET(TOKEN_INCREMENT); }
Feb 22, 2009
Feb 22, 2009
423
yy97:
Feb 12, 2009
Feb 12, 2009
424
425
++YYCURSOR;
{ RET(TOKEN_ADDASSIGN); }
Feb 22, 2009
Feb 22, 2009
426
yy99:
Feb 12, 2009
Feb 12, 2009
427
428
++YYCURSOR;
{ RET(TOKEN_LEQ); }
Feb 22, 2009
Feb 22, 2009
429
yy101:
Feb 12, 2009
Feb 12, 2009
430
++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
431
if ((yych = *YYCURSOR) == '=') goto yy103;
Feb 12, 2009
Feb 12, 2009
432
{ RET(TOKEN_LSHIFT); }
Feb 22, 2009
Feb 22, 2009
433
yy103:
Feb 12, 2009
Feb 12, 2009
434
435
++YYCURSOR;
{ RET(TOKEN_LSHIFTASSIGN); }
Feb 22, 2009
Feb 22, 2009
436
yy105:
Feb 12, 2009
Feb 12, 2009
437
438
++YYCURSOR;
{ RET(TOKEN_GEQ); }
Feb 22, 2009
Feb 22, 2009
439
yy107:
Feb 12, 2009
Feb 12, 2009
440
++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
441
if ((yych = *YYCURSOR) == '=') goto yy109;
442
{ RET(TOKEN_RSHIFT); }
Feb 22, 2009
Feb 22, 2009
443
yy109:
Feb 12, 2009
Feb 12, 2009
444
445
++YYCURSOR;
{ RET(TOKEN_RSHIFTASSIGN); }
Feb 22, 2009
Feb 22, 2009
446
yy111:
447
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
448
if (YYLIMIT <= YYCURSOR) YYFILL(1);
449
yych = *YYCURSOR;
Feb 22, 2009
Feb 22, 2009
450
yy112:
Feb 18, 2009
Feb 18, 2009
451
if (yych <= '\r') {
Feb 22, 2009
Feb 22, 2009
452
453
if (yych == '\n') goto yy113;
if (yych <= '\f') goto yy111;
454
} else {
Feb 18, 2009
Feb 18, 2009
455
if (yych <= '"') {
Feb 22, 2009
Feb 22, 2009
456
457
if (yych <= '!') goto yy111;
goto yy115;
Feb 13, 2009
Feb 13, 2009
458
} else {
Feb 22, 2009
Feb 22, 2009
459
460
if (yych == '\\') goto yy114;
goto yy111;
Feb 13, 2009
Feb 13, 2009
461
}
Feb 22, 2009
Feb 22, 2009
463
464
465
466
467
468
469
470
471
472
473
474
yy113:
YYCURSOR = YYMARKER;
if (yyaccept <= 1) {
if (yyaccept <= 0) {
goto yy3;
} else {
goto yy9;
}
} else {
goto yy124;
}
yy114:
475
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
476
if (YYLIMIT <= YYCURSOR) YYFILL(1);
477
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
478
479
480
if (yych <= 'b') {
if (yych <= '7') {
if (yych <= '&') {
Feb 22, 2009
Feb 22, 2009
481
482
if (yych == '"') goto yy111;
goto yy113;
483
} else {
Feb 22, 2009
Feb 22, 2009
484
485
486
if (yych <= '\'') goto yy111;
if (yych <= '/') goto yy113;
goto yy118;
487
488
}
} else {
Feb 18, 2009
Feb 18, 2009
489
if (yych <= '[') {
Feb 22, 2009
Feb 22, 2009
490
491
if (yych == '?') goto yy111;
goto yy113;
492
} else {
Feb 22, 2009
Feb 22, 2009
493
494
495
if (yych <= '\\') goto yy111;
if (yych <= '`') goto yy113;
goto yy111;
496
497
498
}
}
} else {
Feb 18, 2009
Feb 18, 2009
499
500
if (yych <= 'r') {
if (yych <= 'm') {
Feb 22, 2009
Feb 22, 2009
501
502
if (yych == 'f') goto yy111;
goto yy113;
503
} else {
Feb 22, 2009
Feb 22, 2009
504
505
506
if (yych <= 'n') goto yy111;
if (yych <= 'q') goto yy113;
goto yy111;
507
508
}
} else {
Feb 18, 2009
Feb 18, 2009
509
if (yych <= 'u') {
Feb 22, 2009
Feb 22, 2009
510
511
if (yych == 't') goto yy111;
goto yy113;
512
} else {
Feb 22, 2009
Feb 22, 2009
513
514
515
if (yych <= 'v') goto yy111;
if (yych == 'x') goto yy117;
goto yy113;
516
517
518
}
}
}
Feb 22, 2009
Feb 22, 2009
519
yy115:
520
521
++YYCURSOR;
{ RET(TOKEN_STRING_LITERAL); }
Feb 22, 2009
Feb 22, 2009
522
yy117:
523
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
524
if (YYLIMIT <= YYCURSOR) YYFILL(1);
525
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
526
if (yych <= '@') {
Feb 22, 2009
Feb 22, 2009
527
528
529
if (yych <= '/') goto yy113;
if (yych <= '9') goto yy120;
goto yy113;
530
} else {
Feb 22, 2009
Feb 22, 2009
531
532
533
534
if (yych <= 'F') goto yy120;
if (yych <= '`') goto yy113;
if (yych <= 'f') goto yy120;
goto yy113;
Feb 22, 2009
Feb 22, 2009
536
yy118:
537
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
538
if (YYLIMIT <= YYCURSOR) YYFILL(1);
539
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
540
541
if (yych <= '!') {
if (yych <= '\n') {
Feb 22, 2009
Feb 22, 2009
542
543
if (yych <= '\t') goto yy111;
goto yy113;
Feb 13, 2009
Feb 13, 2009
544
} else {
Feb 22, 2009
Feb 22, 2009
545
546
if (yych == '\r') goto yy113;
goto yy111;
Feb 13, 2009
Feb 13, 2009
547
}
548
} else {
Feb 18, 2009
Feb 18, 2009
549
if (yych <= '7') {
Feb 22, 2009
Feb 22, 2009
550
551
552
if (yych <= '"') goto yy115;
if (yych <= '/') goto yy111;
goto yy118;
553
} else {
Feb 22, 2009
Feb 22, 2009
554
555
if (yych == '\\') goto yy114;
goto yy111;
556
557
}
}
Feb 22, 2009
Feb 22, 2009
558
yy120:
559
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
560
if (YYLIMIT <= YYCURSOR) YYFILL(1);
561
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
562
563
if (yych <= '/') {
if (yych <= '\f') {
Feb 22, 2009
Feb 22, 2009
564
565
if (yych == '\n') goto yy113;
goto yy111;
566
} else {
Feb 22, 2009
Feb 22, 2009
567
568
569
if (yych <= '\r') goto yy113;
if (yych == '"') goto yy115;
goto yy111;
570
571
}
} else {
Feb 18, 2009
Feb 18, 2009
572
if (yych <= '[') {
Feb 22, 2009
Feb 22, 2009
573
574
575
576
if (yych <= '9') goto yy120;
if (yych <= '@') goto yy111;
if (yych <= 'F') goto yy120;
goto yy111;
577
} else {
Feb 22, 2009
Feb 22, 2009
578
579
580
581
if (yych <= '\\') goto yy114;
if (yych <= '`') goto yy111;
if (yych <= 'f') goto yy120;
goto yy111;
582
583
}
}
Feb 22, 2009
Feb 22, 2009
584
585
yy122:
yyaccept = 2;
586
YYMARKER = ++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
587
if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
588
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
589
590
if (yych <= 'K') {
if (yych <= 'D') {
Feb 22, 2009
Feb 22, 2009
591
592
if (yych <= '/') goto yy124;
if (yych <= '9') goto yy122;
593
} else {
Feb 22, 2009
Feb 22, 2009
594
595
if (yych <= 'E') goto yy125;
if (yych <= 'F') goto yy126;
596
597
}
} else {
Feb 18, 2009
Feb 18, 2009
598
if (yych <= 'e') {
Feb 22, 2009
Feb 22, 2009
599
600
if (yych <= 'L') goto yy126;
if (yych >= 'e') goto yy125;
601
} else {
Feb 22, 2009
Feb 22, 2009
602
603
if (yych <= 'f') goto yy126;
if (yych == 'l') goto yy126;
604
605
}
}
Feb 22, 2009
Feb 22, 2009
606
yy124:
Feb 18, 2009
Feb 18, 2009
607
{ RET(TOKEN_FLOAT_LITERAL); }
Feb 22, 2009
Feb 22, 2009
608
yy125:
609
yych = *++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
610
if (yych <= ',') {
Feb 22, 2009
Feb 22, 2009
611
612
if (yych == '+') goto yy127;
goto yy113;
613
} else {
Feb 22, 2009
Feb 22, 2009
614
615
616
617
if (yych <= '-') goto yy127;
if (yych <= '/') goto yy113;
if (yych <= '9') goto yy128;
goto yy113;
Feb 22, 2009
Feb 22, 2009
619
yy126:
620
yych = *++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
621
622
goto yy124;
yy127:
Feb 18, 2009
Feb 18, 2009
623
yych = *++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
624
625
626
if (yych <= '/') goto yy113;
if (yych >= ':') goto yy113;
yy128:
627
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
628
if (YYLIMIT <= YYCURSOR) YYFILL(1);
629
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
630
631
if (yych <= 'K') {
if (yych <= '9') {
Feb 22, 2009
Feb 22, 2009
632
633
if (yych <= '/') goto yy124;
goto yy128;
634
} else {
Feb 22, 2009
Feb 22, 2009
635
636
if (yych == 'F') goto yy126;
goto yy124;
637
638
}
} else {
Feb 18, 2009
Feb 18, 2009
639
if (yych <= 'f') {
Feb 22, 2009
Feb 22, 2009
640
641
642
if (yych <= 'L') goto yy126;
if (yych <= 'e') goto yy124;
goto yy126;
643
} else {
Feb 22, 2009
Feb 22, 2009
644
645
if (yych == 'l') goto yy126;
goto yy124;
646
647
}
}
Feb 22, 2009
Feb 22, 2009
648
yy130:
649
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
650
if (YYLIMIT <= YYCURSOR) YYFILL(1);
651
yych = *YYCURSOR;
Feb 22, 2009
Feb 22, 2009
652
yy131:
Feb 18, 2009
Feb 18, 2009
653
if (yych <= '\r') {
Feb 22, 2009
Feb 22, 2009
654
655
656
if (yych == '\n') goto yy113;
if (yych <= '\f') goto yy130;
goto yy113;
657
} else {
Feb 18, 2009
Feb 18, 2009
658
if (yych <= '\'') {
Feb 22, 2009
Feb 22, 2009
659
660
if (yych <= '&') goto yy130;
goto yy133;
Feb 13, 2009
Feb 13, 2009
661
} else {
Feb 22, 2009
Feb 22, 2009
662
if (yych != '\\') goto yy130;
Feb 13, 2009
Feb 13, 2009
663
}
Feb 22, 2009
Feb 22, 2009
665
yy132:
666
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
667
if (YYLIMIT <= YYCURSOR) YYFILL(1);
668
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
669
670
671
if (yych <= 'b') {
if (yych <= '7') {
if (yych <= '&') {
Feb 22, 2009
Feb 22, 2009
672
673
if (yych == '"') goto yy130;
goto yy113;
674
} else {
Feb 22, 2009
Feb 22, 2009
675
676
677
if (yych <= '\'') goto yy130;
if (yych <= '/') goto yy113;
goto yy135;
678
679
}
} else {
Feb 18, 2009
Feb 18, 2009
680
if (yych <= '[') {
Feb 22, 2009
Feb 22, 2009
681
682
if (yych == '?') goto yy130;
goto yy113;
683
} else {
Feb 22, 2009
Feb 22, 2009
684
685
686
if (yych <= '\\') goto yy130;
if (yych <= '`') goto yy113;
goto yy130;
687
688
689
}
}
} else {
Feb 18, 2009
Feb 18, 2009
690
691
if (yych <= 'r') {
if (yych <= 'm') {
Feb 22, 2009
Feb 22, 2009
692
693
if (yych == 'f') goto yy130;
goto yy113;
694
} else {
Feb 22, 2009
Feb 22, 2009
695
696
697
if (yych <= 'n') goto yy130;
if (yych <= 'q') goto yy113;
goto yy130;
698
699
}
} else {
Feb 18, 2009
Feb 18, 2009
700
if (yych <= 'u') {
Feb 22, 2009
Feb 22, 2009
701
702
if (yych == 't') goto yy130;
goto yy113;
703
} else {
Feb 22, 2009
Feb 22, 2009
704
705
706
if (yych <= 'v') goto yy130;
if (yych == 'x') goto yy134;
goto yy113;
707
708
709
}
}
}
Feb 22, 2009
Feb 22, 2009
710
yy133:
Feb 18, 2009
Feb 18, 2009
711
712
yych = *++YYCURSOR;
goto yy9;
Feb 22, 2009
Feb 22, 2009
713
yy134:
714
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
715
if (YYLIMIT <= YYCURSOR) YYFILL(1);
716
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
717
if (yych <= '@') {
Feb 22, 2009
Feb 22, 2009
718
719
720
if (yych <= '/') goto yy113;
if (yych <= '9') goto yy137;
goto yy113;
721
} else {
Feb 22, 2009
Feb 22, 2009
722
723
724
725
if (yych <= 'F') goto yy137;
if (yych <= '`') goto yy113;
if (yych <= 'f') goto yy137;
goto yy113;
Feb 22, 2009
Feb 22, 2009
727
yy135:
728
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
729
if (YYLIMIT <= YYCURSOR) YYFILL(1);
730
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
731
732
if (yych <= '&') {
if (yych <= '\n') {
Feb 22, 2009
Feb 22, 2009
733
734
if (yych <= '\t') goto yy130;
goto yy113;
Feb 13, 2009
Feb 13, 2009
735
} else {
Feb 22, 2009
Feb 22, 2009
736
737
if (yych == '\r') goto yy113;
goto yy130;
Feb 13, 2009
Feb 13, 2009
738
}
739
} else {
Feb 18, 2009
Feb 18, 2009
740
if (yych <= '7') {
Feb 22, 2009
Feb 22, 2009
741
742
743
if (yych <= '\'') goto yy133;
if (yych <= '/') goto yy130;
goto yy135;
744
} else {
Feb 22, 2009
Feb 22, 2009
745
746
if (yych == '\\') goto yy132;
goto yy130;
747
748
}
}
Feb 22, 2009
Feb 22, 2009
749
yy137:
750
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
751
if (YYLIMIT <= YYCURSOR) YYFILL(1);
752
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
753
754
if (yych <= '/') {
if (yych <= '\f') {
Feb 22, 2009
Feb 22, 2009
755
756
if (yych == '\n') goto yy113;
goto yy130;
757
} else {
Feb 22, 2009
Feb 22, 2009
758
759
760
if (yych <= '\r') goto yy113;
if (yych == '\'') goto yy133;
goto yy130;
761
762
}
} else {
Feb 18, 2009
Feb 18, 2009
763
if (yych <= '[') {
Feb 22, 2009
Feb 22, 2009
764
765
766
767
if (yych <= '9') goto yy137;
if (yych <= '@') goto yy130;
if (yych <= 'F') goto yy137;
goto yy130;
768
} else {
Feb 22, 2009
Feb 22, 2009
769
770
771
772
if (yych <= '\\') goto yy132;
if (yych <= '`') goto yy130;
if (yych <= 'f') goto yy137;
goto yy130;
773
774
}
}
Feb 22, 2009
Feb 22, 2009
775
776
yy139:
yyaccept = 2;
777
yych = *(YYMARKER = ++YYCURSOR);
Feb 22, 2009
Feb 22, 2009
778
779
780
781
if (yych == 'E') goto yy150;
if (yych == 'e') goto yy150;
goto yy149;
yy140:
Feb 18, 2009
Feb 18, 2009
782
yyaccept = 1;
783
YYMARKER = ++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
784
if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
785
yych = *YYCURSOR;
Feb 22, 2009
Feb 22, 2009
786
yy141:
Feb 18, 2009
Feb 18, 2009
787
788
if (yych <= 'L') {
if (yych <= '9') {
Feb 22, 2009
Feb 22, 2009
789
if (yych == '.') goto yy139;
Feb 18, 2009
Feb 18, 2009
790
if (yych <= '/') goto yy9;
Feb 22, 2009
Feb 22, 2009
791
goto yy140;
792
} else {
Feb 22, 2009
Feb 22, 2009
793
if (yych == 'E') goto yy142;
Feb 18, 2009
Feb 18, 2009
794
if (yych <= 'K') goto yy9;
Feb 22, 2009
Feb 22, 2009
795
goto yy143;
796
797
}
} else {
Feb 18, 2009
Feb 18, 2009
798
if (yych <= 'e') {
Feb 22, 2009
Feb 22, 2009
799
if (yych == 'U') goto yy143;
Feb 18, 2009
Feb 18, 2009
800
if (yych <= 'd') goto yy9;
801
} else {
Feb 18, 2009
Feb 18, 2009
802
803
if (yych <= 'l') {
if (yych <= 'k') goto yy9;
Feb 22, 2009
Feb 22, 2009
804
goto yy143;
805
} else {
Feb 22, 2009
Feb 22, 2009
806
if (yych == 'u') goto yy143;
Feb 18, 2009
Feb 18, 2009
807
goto yy9;
808
809
810
}
}
}
Feb 22, 2009
Feb 22, 2009
811
yy142:
812
yych = *++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
813
if (yych <= ',') {
Feb 22, 2009
Feb 22, 2009
814
815
if (yych == '+') goto yy145;
goto yy113;
816
} else {
Feb 22, 2009
Feb 22, 2009
817
818
819
820
if (yych <= '-') goto yy145;
if (yych <= '/') goto yy113;
if (yych <= '9') goto yy146;
goto yy113;
Feb 22, 2009
Feb 22, 2009
822
yy143:
823
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
824
if (YYLIMIT <= YYCURSOR) YYFILL(1);
825
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
826
if (yych <= 'U') {
Feb 22, 2009
Feb 22, 2009
827
if (yych == 'L') goto yy143;
Feb 18, 2009
Feb 18, 2009
828
if (yych <= 'T') goto yy9;
Feb 22, 2009
Feb 22, 2009
829
goto yy143;
830
} else {
Feb 18, 2009
Feb 18, 2009
831
832
if (yych <= 'l') {
if (yych <= 'k') goto yy9;
Feb 22, 2009
Feb 22, 2009
833
goto yy143;
834
} else {
Feb 22, 2009
Feb 22, 2009
835
if (yych == 'u') goto yy143;
Feb 18, 2009
Feb 18, 2009
836
goto yy9;
837
838
}
}
Feb 22, 2009
Feb 22, 2009
839
yy145:
Feb 18, 2009
Feb 18, 2009
840
yych = *++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
841
842
843
if (yych <= '/') goto yy113;
if (yych >= ':') goto yy113;
yy146:
844
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
845
if (YYLIMIT <= YYCURSOR) YYFILL(1);
846
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
847
848
if (yych <= 'K') {
if (yych <= '9') {
Feb 22, 2009
Feb 22, 2009
849
850
if (yych <= '/') goto yy124;
goto yy146;
851
} else {
Feb 22, 2009
Feb 22, 2009
852
853
if (yych == 'F') goto yy126;
goto yy124;
854
855
}
} else {
Feb 18, 2009
Feb 18, 2009
856
if (yych <= 'f') {
Feb 22, 2009
Feb 22, 2009
857
858
859
if (yych <= 'L') goto yy126;
if (yych <= 'e') goto yy124;
goto yy126;
860
} else {
Feb 22, 2009
Feb 22, 2009
861
862
if (yych == 'l') goto yy126;
goto yy124;
863
864
}
}
Feb 22, 2009
Feb 22, 2009
865
866
yy148:
yyaccept = 2;
867
YYMARKER = ++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
868
if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
869
yych = *YYCURSOR;
Feb 22, 2009
Feb 22, 2009
870
yy149:
Feb 18, 2009
Feb 18, 2009
871
872
if (yych <= 'K') {
if (yych <= 'D') {
Feb 22, 2009
Feb 22, 2009
873
874
875
if (yych <= '/') goto yy124;
if (yych <= '9') goto yy148;
goto yy124;
876
} else {
Feb 22, 2009
Feb 22, 2009
877
878
879
if (yych <= 'E') goto yy154;
if (yych <= 'F') goto yy126;
goto yy124;
880
881
}
} else {
Feb 18, 2009
Feb 18, 2009
882
if (yych <= 'e') {
Feb 22, 2009
Feb 22, 2009
883
884
885
if (yych <= 'L') goto yy126;
if (yych <= 'd') goto yy124;
goto yy154;
886
} else {
Feb 22, 2009
Feb 22, 2009
887
888
889
if (yych <= 'f') goto yy126;
if (yych == 'l') goto yy126;
goto yy124;
890
891
}
}
Feb 22, 2009
Feb 22, 2009
892
yy150:
893
yych = *++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
894
if (yych <= ',') {
Feb 22, 2009
Feb 22, 2009
895
if (yych != '+') goto yy113;
896
} else {
Feb 22, 2009
Feb 22, 2009
897
898
899
900
if (yych <= '-') goto yy151;
if (yych <= '/') goto yy113;
if (yych <= '9') goto yy152;
goto yy113;
Feb 22, 2009
Feb 22, 2009
902
yy151:
Feb 18, 2009
Feb 18, 2009
903
yych = *++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
904
905
906
if (yych <= '/') goto yy113;
if (yych >= ':') goto yy113;
yy152:
907
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
908
if (YYLIMIT <= YYCURSOR) YYFILL(1);
909
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
910
911
if (yych <= 'K') {
if (yych <= '9') {
Feb 22, 2009
Feb 22, 2009
912
913
if (yych <= '/') goto yy124;
goto yy152;
914
} else {
Feb 22, 2009
Feb 22, 2009
915
916
if (yych == 'F') goto yy126;
goto yy124;
917
918
}
} else {
Feb 18, 2009
Feb 18, 2009
919
if (yych <= 'f') {
Feb 22, 2009
Feb 22, 2009
920
921
922
if (yych <= 'L') goto yy126;
if (yych <= 'e') goto yy124;
goto yy126;
923
} else {
Feb 22, 2009
Feb 22, 2009
924
925
if (yych == 'l') goto yy126;
goto yy124;
926
927
}
}
Feb 22, 2009
Feb 22, 2009
928
yy154:
929
yych = *++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
930
if (yych <= ',') {
Feb 22, 2009
Feb 22, 2009
931
if (yych != '+') goto yy113;
932
} else {
Feb 22, 2009
Feb 22, 2009
933
934
935
936
if (yych <= '-') goto yy155;
if (yych <= '/') goto yy113;
if (yych <= '9') goto yy156;
goto yy113;
Feb 22, 2009
Feb 22, 2009
938
yy155:
Feb 18, 2009
Feb 18, 2009
939
yych = *++YYCURSOR;
Feb 22, 2009
Feb 22, 2009
940
941
942
if (yych <= '/') goto yy113;
if (yych >= ':') goto yy113;
yy156:
943
++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
944
if (YYLIMIT <= YYCURSOR) YYFILL(1);
945
yych = *YYCURSOR;
Feb 18, 2009
Feb 18, 2009
946
947
if (yych <= 'K') {
if (yych <= '9') {
Feb 22, 2009
Feb 22, 2009
948
949
if (yych <= '/') goto yy124;
goto yy156;
950
} else {
Feb 22, 2009
Feb 22, 2009
951
952
if (yych == 'F') goto yy126;
goto yy124;
953
954
}
} else {
Feb 18, 2009
Feb 18, 2009
955
if (yych <= 'f') {
Feb 22, 2009
Feb 22, 2009
956
957
958
if (yych <= 'L') goto yy126;
if (yych <= 'e') goto yy124;
goto yy126;
959
} else {
Feb 22, 2009
Feb 22, 2009
960
961
if (yych == 'l') goto yy126;
goto yy124;
962
963
}
}
Feb 22, 2009
Feb 22, 2009
964
yy158:
Feb 18, 2009
Feb 18, 2009
965
yyaccept = 1;
966
YYMARKER = ++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
967
if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
968
yych = *YYCURSOR;
Feb 22, 2009
Feb 22, 2009
969
yy159:
Feb 18, 2009
Feb 18, 2009
970
971
if (yych <= 'L') {
if (yych <= '9') {
Feb 22, 2009
Feb 22, 2009
972
if (yych == '.') goto yy139;
Feb 18, 2009
Feb 18, 2009
973
if (yych <= '/') goto yy9;
Feb 22, 2009
Feb 22, 2009
974
goto yy158;
975
} else {
Feb 22, 2009
Feb 22, 2009
976
if (yych == 'E') goto yy142;
Feb 18, 2009
Feb 18, 2009
977
if (yych <= 'K') goto yy9;
Feb 22, 2009
Feb 22, 2009
978
goto yy165;
979
980
}
} else {
Feb 18, 2009
Feb 18, 2009
981
if (yych <= 'e') {
Feb 22, 2009
Feb 22, 2009
982
if (yych == 'U') goto yy165;
Feb 18, 2009
Feb 18, 2009
983
if (yych <= 'd') goto yy9;
Feb 22, 2009
Feb 22, 2009
984
goto yy142;
985
} else {
Feb 18, 2009
Feb 18, 2009
986
987
if (yych <= 'l') {
if (yych <= 'k') goto yy9;
Feb 22, 2009
Feb 22, 2009
988
goto yy165;
989
} else {
Feb 22, 2009
Feb 22, 2009
990
if (yych == 'u') goto yy165;
Feb 18, 2009
Feb 18, 2009
991
goto yy9;
992
993
994
}
}
}
Feb 22, 2009
Feb 22, 2009
995
yy160:
996
yych = *++YYCURSOR;
Feb 18, 2009
Feb 18, 2009
997
if (yych <= '@') {
Feb 22, 2009
Feb 22, 2009
998
999
if (yych <= '/') goto yy113;
if (yych >= ':') goto yy113;
1000
} else {