Skip to content

Latest commit

 

History

History
1361 lines (1334 loc) · 24.5 KB

mojoshader_lexer.c

File metadata and controls

1361 lines (1334 loc) · 24.5 KB
 
Feb 13, 2009
Feb 13, 2009
1
/* Generated by re2c 0.12.1 on Fri Feb 13 00:36:29 2009 */
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 12, 2009
Feb 12, 2009
28
#define RET(t) do { update_state(s, cursor, token); return t; } while (0)
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#define YYCTYPE uchar
#define YYCURSOR cursor
#define YYLIMIT limit
#define YYMARKER s->lexer_marker
#define YYFILL(n) { if ((n) == 1) { RET(TOKEN_EOI); } }
static void update_state(IncludeState *s, const uchar *cur, const uchar *tok)
{
s->bytes_left -= (unsigned int) (cur - ((const uchar *) s->source));
s->source = (const char *) cur;
s->token = (const char *) tok;
} // update_state
Token preprocessor_internal_lexer(IncludeState *s)
{
const uchar *cursor = (const uchar *) s->source;
const uchar *token;
Feb 13, 2009
Feb 13, 2009
46
const uchar *matchptr;
47
const uchar *limit = cursor + s->bytes_left;
Feb 12, 2009
Feb 12, 2009
48
int saw_newline = 0;
49
50
51
52
53
54
55
56
57
58
59
60
61
62
scanner_loop:
token = cursor;
if (YYLIMIT == YYCURSOR)
RET(TOKEN_EOI);
{
YYCTYPE yych;
unsigned int yyaccept = 0;
Feb 12, 2009
Feb 12, 2009
63
if((YYLIMIT - YYCURSOR) < 8) YYFILL(8);
64
yych = *YYCURSOR;
Feb 12, 2009
Feb 12, 2009
65
66
67
68
switch(yych) {
case 0x09:
case 0x0B:
case 0x0C:
69
case ' ': goto yy62;
Feb 12, 2009
Feb 12, 2009
70
71
case 0x0A: goto yy64;
case 0x0D: goto yy66;
Feb 12, 2009
Feb 12, 2009
72
case '!': goto yy34;
73
case '"': goto yy13;
Feb 12, 2009
Feb 12, 2009
74
75
76
case '#': goto yy36;
case '%': goto yy24;
case '&': goto yy28;
77
case '\'': goto yy9;
Feb 12, 2009
Feb 12, 2009
78
79
80
81
82
83
case '(': goto yy38;
case ')': goto yy40;
case '*': goto yy22;
case '+': goto yy18;
case ',': goto yy46;
case '-': goto yy20;
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
case '.': goto yy11;
case '/': goto yy2;
case '0': goto yy6;
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': goto yy8;
case ':': goto yy50;
case ';': goto yy52;
case '<': goto yy16;
Feb 12, 2009
Feb 12, 2009
99
case '=': goto yy32;
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
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
case '>': goto yy14;
case '?': goto yy58;
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':
case 'z': goto yy4;
Feb 12, 2009
Feb 12, 2009
155
case '[': goto yy42;
156
case '\\': goto yy60;
Feb 12, 2009
Feb 12, 2009
157
158
case ']': goto yy44;
case '^': goto yy26;
159
case '{': goto yy54;
Feb 12, 2009
Feb 12, 2009
160
case '|': goto yy30;
161
case '}': goto yy56;
Feb 12, 2009
Feb 12, 2009
162
case '~': goto yy48;
163
164
165
166
default: goto yy67;
}
yy2:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
167
168
169
170
171
172
if((yych = *YYCURSOR) <= '.') {
if(yych == '*') goto yy230;
} else {
if(yych <= '/') goto yy228;
if(yych == '=') goto yy226;
}
173
174
175
176
{ RET('/'); }
yy4:
++YYCURSOR;
yych = *YYCURSOR;
Feb 12, 2009
Feb 12, 2009
177
goto yy225;
178
179
180
181
182
yy5:
{ RET(TOKEN_IDENTIFIER); }
yy6:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
Feb 12, 2009
Feb 12, 2009
183
184
if(yych <= 'X') {
if(yych <= 'T') {
Feb 12, 2009
Feb 12, 2009
185
186
if(yych == 'L') goto yy200;
goto yy216;
187
} else {
Feb 12, 2009
Feb 12, 2009
188
189
190
if(yych <= 'U') goto yy200;
if(yych <= 'W') goto yy216;
goto yy217;
191
192
}
} else {
Feb 12, 2009
Feb 12, 2009
193
if(yych <= 't') {
Feb 12, 2009
Feb 12, 2009
194
195
if(yych == 'l') goto yy200;
goto yy216;
196
} else {
Feb 12, 2009
Feb 12, 2009
197
198
199
if(yych <= 'u') goto yy200;
if(yych == 'x') goto yy217;
goto yy216;
200
201
202
203
204
205
206
}
}
yy7:
{ RET(TOKEN_INT_LITERAL); }
yy8:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
Feb 12, 2009
Feb 12, 2009
207
goto yy198;
208
209
210
yy9:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
Feb 13, 2009
Feb 13, 2009
211
212
if(yych == 0x0A) goto yy10;
if(yych != 0x0D) goto yy188;
Feb 13, 2009
Feb 13, 2009
214
{ goto bad_chars; }
Feb 12, 2009
Feb 12, 2009
216
217
218
++YYCURSOR;
if((yych = *YYCURSOR) <= '/') goto yy12;
if(yych <= '9') goto yy179;
219
220
221
222
223
yy12:
{ RET('.'); }
yy13:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
Feb 12, 2009
Feb 12, 2009
224
if(yych == 0x0A) goto yy10;
Feb 13, 2009
Feb 13, 2009
225
if(yych == 0x0D) goto yy10;
Feb 12, 2009
Feb 12, 2009
226
goto yy170;
227
228
yy14:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
229
if((yych = *YYCURSOR) <= '<') goto yy15;
Feb 12, 2009
Feb 12, 2009
230
231
if(yych <= '=') goto yy163;
if(yych <= '>') goto yy165;
232
233
234
235
yy15:
{ RET('>'); }
yy16:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
236
if((yych = *YYCURSOR) <= ';') goto yy17;
Feb 12, 2009
Feb 12, 2009
237
238
if(yych <= '<') goto yy159;
if(yych <= '=') goto yy157;
239
240
241
242
yy17:
{ RET('<'); }
yy18:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
243
244
245
if((yych = *YYCURSOR) == '+') goto yy153;
if(yych == '=') goto yy155;
{ RET('+'); }
246
247
yy20:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
if((yych = *YYCURSOR) == '-') goto yy149;
if(yych == '=') goto yy151;
{ RET('-'); }
yy22:
++YYCURSOR;
if((yych = *YYCURSOR) == '=') goto yy147;
{ RET('*'); }
yy24:
++YYCURSOR;
if((yych = *YYCURSOR) == '=') goto yy145;
{ RET('%'); }
yy26:
++YYCURSOR;
if((yych = *YYCURSOR) == '=') goto yy143;
{ RET('^'); }
yy28:
++YYCURSOR;
if((yych = *YYCURSOR) == '&') goto yy139;
if(yych == '=') goto yy141;
{ RET('&'); }
yy30:
++YYCURSOR;
if((yych = *YYCURSOR) == '=') goto yy137;
if(yych == '|') goto yy135;
272
{ RET('|'); }
Feb 12, 2009
Feb 12, 2009
273
yy32:
274
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
275
if((yych = *YYCURSOR) == '=') goto yy133;
276
{ RET('='); }
Feb 12, 2009
Feb 12, 2009
277
yy34:
278
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
279
if((yych = *YYCURSOR) == '=') goto yy131;
280
{ RET('!'); }
Feb 12, 2009
Feb 12, 2009
281
282
yy36:
yyaccept = 2;
283
yych = *(YYMARKER = ++YYCURSOR);
Feb 12, 2009
Feb 12, 2009
284
285
286
if(yych <= 'c') {
if(yych <= 0x1F) {
if(yych == 0x09) goto yy72;
287
} else {
Feb 12, 2009
Feb 12, 2009
288
289
if(yych <= ' ') goto yy72;
if(yych == '#') goto yy79;
290
291
}
} else {
Feb 12, 2009
Feb 12, 2009
292
293
294
if(yych <= 'k') {
if(yych <= 'e') goto yy72;
if(yych == 'i') goto yy72;
295
} else {
Feb 12, 2009
Feb 12, 2009
296
297
if(yych <= 'l') goto yy72;
if(yych == 'u') goto yy72;
298
299
}
}
Feb 12, 2009
Feb 12, 2009
300
yy37:
301
302
303
{ RET('#'); }
yy38:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
304
{ RET('('); }
305
306
yy40:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
307
{ RET(')'); }
308
309
yy42:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
310
{ RET('['); }
311
312
yy44:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
313
{ RET(']'); }
314
315
yy46:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
316
{ RET(','); }
317
318
yy48:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
319
{ RET('~'); }
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
yy50:
++YYCURSOR;
{ RET(':'); }
yy52:
++YYCURSOR;
{ RET(';'); }
yy54:
++YYCURSOR;
{ RET('{'); }
yy56:
++YYCURSOR;
{ RET('}'); }
yy58:
++YYCURSOR;
{ RET('?'); }
yy60:
++YYCURSOR;
{ RET('\\'); }
yy62:
++YYCURSOR;
yych = *YYCURSOR;
goto yy70;
yy63:
{ goto scanner_loop; }
yy64:
++YYCURSOR;
yy65:
Feb 12, 2009
Feb 12, 2009
347
{ s->line++; RET('\n'); }
348
349
yy66:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
350
if(yych == 0x0A) goto yy68;
351
352
353
354
355
356
357
358
359
goto yy65;
yy67:
yych = *++YYCURSOR;
goto yy10;
yy68:
yych = *++YYCURSOR;
goto yy65;
yy69:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
360
if(YYLIMIT == YYCURSOR) YYFILL(1);
361
362
yych = *YYCURSOR;
yy70:
Feb 12, 2009
Feb 12, 2009
363
364
if(yych <= 0x0A) {
if(yych == 0x09) goto yy69;
365
366
goto yy63;
} else {
Feb 12, 2009
Feb 12, 2009
367
368
if(yych <= 0x0C) goto yy69;
if(yych == ' ') goto yy69;
369
370
371
372
goto yy63;
}
yy71:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
373
if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
374
375
yych = *YYCURSOR;
yy72:
Feb 12, 2009
Feb 12, 2009
376
377
378
if(yych <= 'e') {
if(yych <= 0x1F) {
if(yych == 0x09) goto yy71;
379
} else {
Feb 12, 2009
Feb 12, 2009
380
381
382
if(yych <= ' ') goto yy71;
if(yych <= 'c') goto yy73;
if(yych <= 'd') goto yy77;
383
384
385
goto yy74;
}
} else {
Feb 12, 2009
Feb 12, 2009
386
387
if(yych <= 'k') {
if(yych == 'i') goto yy75;
388
} else {
Feb 12, 2009
Feb 12, 2009
389
390
if(yych <= 'l') goto yy78;
if(yych == 'u') goto yy76;
391
392
393
394
}
}
yy73:
YYCURSOR = YYMARKER;
Feb 12, 2009
Feb 12, 2009
395
396
397
if(yyaccept <= 2) {
if(yyaccept <= 1) {
if(yyaccept <= 0) {
398
399
400
401
402
goto yy7;
} else {
goto yy10;
}
} else {
Feb 12, 2009
Feb 12, 2009
403
goto yy37;
404
405
}
} else {
Feb 12, 2009
Feb 12, 2009
406
407
if(yyaccept <= 3) {
goto yy98;
408
} else {
Feb 12, 2009
Feb 12, 2009
409
goto yy181;
410
411
412
413
}
}
yy74:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
414
415
if(yych <= 'm') {
if(yych == 'l') goto yy114;
416
417
goto yy73;
} else {
Feb 12, 2009
Feb 12, 2009
418
419
if(yych <= 'n') goto yy115;
if(yych == 'r') goto yy116;
420
421
422
423
goto yy73;
}
yy75:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
424
425
if(yych == 'f') goto yy97;
if(yych == 'n') goto yy96;
426
427
428
goto yy73;
yy76:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
429
if(yych == 'n') goto yy91;
430
431
432
goto yy73;
yy77:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
433
if(yych == 'e') goto yy85;
434
435
436
goto yy73;
yy78:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
437
if(yych == 'i') goto yy81;
438
439
440
441
442
443
goto yy73;
yy79:
++YYCURSOR;
{ RET(TOKEN_HASHHASH); }
yy81:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
444
if(yych != 'n') goto yy73;
445
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
446
if(yych != 'e') goto yy73;
447
448
449
450
++YYCURSOR;
{ RET(TOKEN_PP_LINE); }
yy85:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
451
if(yych != 'f') goto yy73;
452
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
453
if(yych != 'i') goto yy73;
454
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
455
if(yych != 'n') goto yy73;
456
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
457
if(yych != 'e') goto yy73;
458
459
460
461
++YYCURSOR;
{ RET(TOKEN_PP_DEFINE); }
yy91:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
462
if(yych != 'd') goto yy73;
463
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
464
if(yych != 'e') goto yy73;
465
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
466
if(yych != 'f') goto yy73;
467
468
469
470
++YYCURSOR;
{ RET(TOKEN_PP_UNDEF); }
yy96:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
471
if(yych == 'c') goto yy108;
472
473
goto yy73;
yy97:
Feb 12, 2009
Feb 12, 2009
474
yyaccept = 3;
475
yych = *(YYMARKER = ++YYCURSOR);
Feb 12, 2009
Feb 12, 2009
476
477
if(yych == 'd') goto yy100;
if(yych == 'n') goto yy99;
478
479
480
481
yy98:
{ RET(TOKEN_PP_IF); }
yy99:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
482
if(yych == 'd') goto yy104;
483
484
485
goto yy73;
yy100:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
486
if(yych != 'e') goto yy73;
487
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
488
if(yych != 'f') goto yy73;
489
490
491
492
++YYCURSOR;
{ RET(TOKEN_PP_IFDEF); }
yy104:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
493
if(yych != 'e') goto yy73;
494
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
495
if(yych != 'f') goto yy73;
496
497
498
499
++YYCURSOR;
{ RET(TOKEN_PP_IFNDEF); }
yy108:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
500
if(yych != 'l') goto yy73;
501
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
502
if(yych != 'u') goto yy73;
503
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
504
if(yych != 'd') goto yy73;
505
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
506
if(yych != 'e') goto yy73;
507
508
509
510
++YYCURSOR;
{ RET(TOKEN_PP_INCLUDE); }
yy114:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
511
512
if(yych == 'i') goto yy125;
if(yych == 's') goto yy126;
513
514
515
goto yy73;
yy115:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
516
if(yych == 'd') goto yy121;
517
518
519
goto yy73;
yy116:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
520
if(yych != 'r') goto yy73;
521
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
522
if(yych != 'o') goto yy73;
523
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
524
if(yych != 'r') goto yy73;
525
526
527
528
++YYCURSOR;
{ RET(TOKEN_PP_ERROR); }
yy121:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
529
if(yych != 'i') goto yy73;
530
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
531
if(yych != 'f') goto yy73;
532
533
534
535
++YYCURSOR;
{ RET(TOKEN_PP_ENDIF); }
yy125:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
536
if(yych == 'f') goto yy129;
537
538
539
goto yy73;
yy126:
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
540
if(yych != 'e') goto yy73;
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
++YYCURSOR;
{ RET(TOKEN_PP_ELSE); }
yy129:
++YYCURSOR;
{ RET(TOKEN_PP_ELIF); }
yy131:
++YYCURSOR;
{ RET(TOKEN_NEQ); }
yy133:
++YYCURSOR;
{ RET(TOKEN_EQL); }
yy135:
++YYCURSOR;
{ RET(TOKEN_OROR); }
yy137:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
557
{ RET(TOKEN_ORASSIGN); }
558
559
yy139:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
560
{ RET(TOKEN_ANDAND); }
561
562
yy141:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
563
{ RET(TOKEN_ANDASSIGN); }
564
565
yy143:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
566
{ RET(TOKEN_XORASSIGN); }
567
568
yy145:
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
{ RET(TOKEN_MODASSIGN); }
yy147:
++YYCURSOR;
{ RET(TOKEN_MULTASSIGN); }
yy149:
++YYCURSOR;
{ RET(TOKEN_DECREMENT); }
yy151:
++YYCURSOR;
{ RET(TOKEN_SUBASSIGN); }
yy153:
++YYCURSOR;
{ RET(TOKEN_INCREMENT); }
yy155:
++YYCURSOR;
{ RET(TOKEN_ADDASSIGN); }
yy157:
++YYCURSOR;
{ RET(TOKEN_LEQ); }
yy159:
++YYCURSOR;
if((yych = *YYCURSOR) == '=') goto yy161;
{ RET(TOKEN_LSHIFT); }
yy161:
++YYCURSOR;
{ RET(TOKEN_LSHIFTASSIGN); }
yy163:
++YYCURSOR;
{ RET(TOKEN_GEQ); }
yy165:
++YYCURSOR;
if((yych = *YYCURSOR) == '=') goto yy167;
601
{ RET(TOKEN_RSHIFT); }
Feb 12, 2009
Feb 12, 2009
602
603
604
605
yy167:
++YYCURSOR;
{ RET(TOKEN_RSHIFTASSIGN); }
yy169:
606
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
607
if(YYLIMIT == YYCURSOR) YYFILL(1);
608
yych = *YYCURSOR;
Feb 12, 2009
Feb 12, 2009
609
yy170:
Feb 13, 2009
Feb 13, 2009
610
if(yych <= 0x0D) {
Feb 12, 2009
Feb 12, 2009
611
if(yych == 0x0A) goto yy73;
Feb 13, 2009
Feb 13, 2009
612
613
if(yych <= 0x0C) goto yy169;
goto yy73;
614
} else {
Feb 13, 2009
Feb 13, 2009
615
616
617
618
619
620
if(yych <= '"') {
if(yych <= '!') goto yy169;
goto yy172;
} else {
if(yych != '\\') goto yy169;
}
Feb 12, 2009
Feb 12, 2009
622
yy171:
623
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
624
if(YYLIMIT == YYCURSOR) YYFILL(1);
625
yych = *YYCURSOR;
Feb 12, 2009
Feb 12, 2009
626
627
628
if(yych <= 'b') {
if(yych <= '7') {
if(yych <= '&') {
Feb 12, 2009
Feb 12, 2009
629
if(yych == '"') goto yy169;
630
631
goto yy73;
} else {
Feb 12, 2009
Feb 12, 2009
632
if(yych <= '\'') goto yy169;
Feb 12, 2009
Feb 12, 2009
633
if(yych <= '/') goto yy73;
Feb 12, 2009
Feb 12, 2009
634
goto yy175;
635
636
}
} else {
Feb 12, 2009
Feb 12, 2009
637
if(yych <= '[') {
Feb 12, 2009
Feb 12, 2009
638
if(yych == '?') goto yy169;
639
640
goto yy73;
} else {
Feb 12, 2009
Feb 12, 2009
641
if(yych <= '\\') goto yy169;
Feb 12, 2009
Feb 12, 2009
642
if(yych <= '`') goto yy73;
Feb 12, 2009
Feb 12, 2009
643
goto yy169;
644
645
646
}
}
} else {
Feb 12, 2009
Feb 12, 2009
647
648
if(yych <= 'r') {
if(yych <= 'm') {
Feb 12, 2009
Feb 12, 2009
649
if(yych == 'f') goto yy169;
650
651
goto yy73;
} else {
Feb 12, 2009
Feb 12, 2009
652
if(yych <= 'n') goto yy169;
Feb 12, 2009
Feb 12, 2009
653
if(yych <= 'q') goto yy73;
Feb 12, 2009
Feb 12, 2009
654
goto yy169;
655
656
}
} else {
Feb 12, 2009
Feb 12, 2009
657
if(yych <= 'u') {
Feb 12, 2009
Feb 12, 2009
658
if(yych == 't') goto yy169;
659
660
goto yy73;
} else {
Feb 12, 2009
Feb 12, 2009
661
662
if(yych <= 'v') goto yy169;
if(yych == 'x') goto yy174;
663
664
665
666
goto yy73;
}
}
}
Feb 12, 2009
Feb 12, 2009
667
yy172:
668
669
++YYCURSOR;
{ RET(TOKEN_STRING_LITERAL); }
Feb 12, 2009
Feb 12, 2009
670
yy174:
671
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
672
if(YYLIMIT == YYCURSOR) YYFILL(1);
673
yych = *YYCURSOR;
Feb 12, 2009
Feb 12, 2009
674
675
if(yych <= '@') {
if(yych <= '/') goto yy73;
Feb 12, 2009
Feb 12, 2009
676
if(yych <= '9') goto yy177;
677
678
goto yy73;
} else {
Feb 12, 2009
Feb 12, 2009
679
if(yych <= 'F') goto yy177;
Feb 12, 2009
Feb 12, 2009
680
if(yych <= '`') goto yy73;
Feb 12, 2009
Feb 12, 2009
681
if(yych <= 'f') goto yy177;
682
683
goto yy73;
}
Feb 12, 2009
Feb 12, 2009
684
yy175:
685
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
686
if(YYLIMIT == YYCURSOR) YYFILL(1);
687
yych = *YYCURSOR;
Feb 13, 2009
Feb 13, 2009
688
689
690
691
692
693
694
695
if(yych <= '!') {
if(yych <= 0x0A) {
if(yych <= 0x09) goto yy169;
goto yy73;
} else {
if(yych == 0x0D) goto yy73;
goto yy169;
}
696
} else {
Feb 12, 2009
Feb 12, 2009
697
if(yych <= '7') {
Feb 13, 2009
Feb 13, 2009
698
if(yych <= '"') goto yy172;
Feb 12, 2009
Feb 12, 2009
699
700
if(yych <= '/') goto yy169;
goto yy175;
701
} else {
Feb 12, 2009
Feb 12, 2009
702
703
if(yych == '\\') goto yy171;
goto yy169;
704
705
}
}
Feb 12, 2009
Feb 12, 2009
706
yy177:
707
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
708
if(YYLIMIT == YYCURSOR) YYFILL(1);
709
yych = *YYCURSOR;
Feb 13, 2009
Feb 13, 2009
710
711
if(yych <= '/') {
if(yych <= 0x0C) {
Feb 12, 2009
Feb 12, 2009
712
if(yych == 0x0A) goto yy73;
Feb 12, 2009
Feb 12, 2009
713
goto yy169;
714
} else {
Feb 13, 2009
Feb 13, 2009
715
716
717
if(yych <= 0x0D) goto yy73;
if(yych == '"') goto yy172;
goto yy169;
718
719
}
} else {
Feb 12, 2009
Feb 12, 2009
720
if(yych <= '[') {
Feb 13, 2009
Feb 13, 2009
721
if(yych <= '9') goto yy177;
Feb 12, 2009
Feb 12, 2009
722
723
724
if(yych <= '@') goto yy169;
if(yych <= 'F') goto yy177;
goto yy169;
725
} else {
Feb 12, 2009
Feb 12, 2009
726
727
728
729
if(yych <= '\\') goto yy171;
if(yych <= '`') goto yy169;
if(yych <= 'f') goto yy177;
goto yy169;
730
731
}
}
Feb 12, 2009
Feb 12, 2009
732
733
yy179:
yyaccept = 4;
734
YYMARKER = ++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
735
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
736
yych = *YYCURSOR;
Feb 12, 2009
Feb 12, 2009
737
738
if(yych <= 'K') {
if(yych <= 'D') {
Feb 12, 2009
Feb 12, 2009
739
740
if(yych <= '/') goto yy181;
if(yych <= '9') goto yy179;
741
} else {
Feb 12, 2009
Feb 12, 2009
742
743
if(yych <= 'E') goto yy182;
if(yych <= 'F') goto yy183;
744
745
}
} else {
Feb 12, 2009
Feb 12, 2009
746
if(yych <= 'e') {
Feb 12, 2009
Feb 12, 2009
747
748
if(yych <= 'L') goto yy183;
if(yych >= 'e') goto yy182;
749
} else {
Feb 12, 2009
Feb 12, 2009
750
751
if(yych <= 'f') goto yy183;
if(yych == 'l') goto yy183;
752
753
}
}
Feb 12, 2009
Feb 12, 2009
754
yy181:
755
{ RET(TOKEN_FLOAT_LITERAL); }
Feb 12, 2009
Feb 12, 2009
756
yy182:
757
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
758
if(yych <= ',') {
Feb 12, 2009
Feb 12, 2009
759
if(yych == '+') goto yy184;
760
761
goto yy73;
} else {
Feb 12, 2009
Feb 12, 2009
762
if(yych <= '-') goto yy184;
Feb 12, 2009
Feb 12, 2009
763
if(yych <= '/') goto yy73;
Feb 12, 2009
Feb 12, 2009
764
if(yych <= '9') goto yy185;
765
766
goto yy73;
}
Feb 12, 2009
Feb 12, 2009
767
yy183:
768
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
769
770
goto yy181;
yy184:
771
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
772
773
if(yych <= '/') goto yy73;
if(yych >= ':') goto yy73;
Feb 12, 2009
Feb 12, 2009
774
yy185:
775
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
776
if(YYLIMIT == YYCURSOR) YYFILL(1);
777
yych = *YYCURSOR;
Feb 12, 2009
Feb 12, 2009
778
779
if(yych <= 'K') {
if(yych <= '9') {
Feb 12, 2009
Feb 12, 2009
780
781
if(yych <= '/') goto yy181;
goto yy185;
782
} else {
Feb 12, 2009
Feb 12, 2009
783
784
if(yych == 'F') goto yy183;
goto yy181;
785
786
}
} else {
Feb 12, 2009
Feb 12, 2009
787
if(yych <= 'f') {
Feb 12, 2009
Feb 12, 2009
788
789
790
if(yych <= 'L') goto yy183;
if(yych <= 'e') goto yy181;
goto yy183;
791
} else {
Feb 12, 2009
Feb 12, 2009
792
793
if(yych == 'l') goto yy183;
goto yy181;
794
795
}
}
Feb 12, 2009
Feb 12, 2009
796
yy187:
797
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
798
if(YYLIMIT == YYCURSOR) YYFILL(1);
799
yych = *YYCURSOR;
Feb 12, 2009
Feb 12, 2009
800
yy188:
Feb 13, 2009
Feb 13, 2009
801
if(yych <= 0x0D) {
Feb 12, 2009
Feb 12, 2009
802
if(yych == 0x0A) goto yy73;
Feb 13, 2009
Feb 13, 2009
803
804
if(yych <= 0x0C) goto yy187;
goto yy73;
805
} else {
Feb 13, 2009
Feb 13, 2009
806
807
808
809
810
811
if(yych <= '\'') {
if(yych <= '&') goto yy187;
goto yy190;
} else {
if(yych != '\\') goto yy187;
}
Feb 12, 2009
Feb 12, 2009
813
yy189:
814
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
815
if(YYLIMIT == YYCURSOR) YYFILL(1);
816
yych = *YYCURSOR;
Feb 12, 2009
Feb 12, 2009
817
818
819
if(yych <= 'b') {
if(yych <= '7') {
if(yych <= '&') {
Feb 12, 2009
Feb 12, 2009
820
if(yych == '"') goto yy187;
821
822
goto yy73;
} else {
Feb 12, 2009
Feb 12, 2009
823
if(yych <= '\'') goto yy187;
Feb 12, 2009
Feb 12, 2009
824
if(yych <= '/') goto yy73;
Feb 12, 2009
Feb 12, 2009
825
goto yy192;
826
827
}
} else {
Feb 12, 2009
Feb 12, 2009
828
if(yych <= '[') {
Feb 12, 2009
Feb 12, 2009
829
if(yych == '?') goto yy187;
830
831
goto yy73;
} else {
Feb 12, 2009
Feb 12, 2009
832
if(yych <= '\\') goto yy187;
Feb 12, 2009
Feb 12, 2009
833
if(yych <= '`') goto yy73;
Feb 12, 2009
Feb 12, 2009
834
goto yy187;
835
836
837
}
}
} else {
Feb 12, 2009
Feb 12, 2009
838
839
if(yych <= 'r') {
if(yych <= 'm') {
Feb 12, 2009
Feb 12, 2009
840
if(yych == 'f') goto yy187;
841
842
goto yy73;
} else {
Feb 12, 2009
Feb 12, 2009
843
if(yych <= 'n') goto yy187;
Feb 12, 2009
Feb 12, 2009
844
if(yych <= 'q') goto yy73;
Feb 12, 2009
Feb 12, 2009
845
goto yy187;
846
847
}
} else {
Feb 12, 2009
Feb 12, 2009
848
if(yych <= 'u') {
Feb 12, 2009
Feb 12, 2009
849
if(yych == 't') goto yy187;
850
851
goto yy73;
} else {
Feb 12, 2009
Feb 12, 2009
852
853
if(yych <= 'v') goto yy187;
if(yych == 'x') goto yy191;
854
855
856
857
goto yy73;
}
}
}
Feb 12, 2009
Feb 12, 2009
858
yy190:
859
860
yych = *++YYCURSOR;
goto yy7;
Feb 12, 2009
Feb 12, 2009
861
yy191:
862
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
863
if(YYLIMIT == YYCURSOR) YYFILL(1);
864
yych = *YYCURSOR;
Feb 12, 2009
Feb 12, 2009
865
866
if(yych <= '@') {
if(yych <= '/') goto yy73;
Feb 12, 2009
Feb 12, 2009
867
if(yych <= '9') goto yy194;
868
869
goto yy73;
} else {
Feb 12, 2009
Feb 12, 2009
870
if(yych <= 'F') goto yy194;
Feb 12, 2009
Feb 12, 2009
871
if(yych <= '`') goto yy73;
Feb 12, 2009
Feb 12, 2009
872
if(yych <= 'f') goto yy194;
873
874
goto yy73;
}
Feb 12, 2009
Feb 12, 2009
875
yy192:
876
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
877
if(YYLIMIT == YYCURSOR) YYFILL(1);
878
yych = *YYCURSOR;
Feb 13, 2009
Feb 13, 2009
879
880
881
882
883
884
885
886
if(yych <= '&') {
if(yych <= 0x0A) {
if(yych <= 0x09) goto yy187;
goto yy73;
} else {
if(yych == 0x0D) goto yy73;
goto yy187;
}
887
} else {
Feb 12, 2009
Feb 12, 2009
888
if(yych <= '7') {
Feb 13, 2009
Feb 13, 2009
889
if(yych <= '\'') goto yy190;
Feb 12, 2009
Feb 12, 2009
890
891
if(yych <= '/') goto yy187;
goto yy192;
892
} else {
Feb 12, 2009
Feb 12, 2009
893
894
if(yych == '\\') goto yy189;
goto yy187;
895
896
}
}
Feb 12, 2009
Feb 12, 2009
897
yy194:
898
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
899
if(YYLIMIT == YYCURSOR) YYFILL(1);
900
yych = *YYCURSOR;
Feb 13, 2009
Feb 13, 2009
901
902
if(yych <= '/') {
if(yych <= 0x0C) {
Feb 12, 2009
Feb 12, 2009
903
if(yych == 0x0A) goto yy73;
Feb 12, 2009
Feb 12, 2009
904
goto yy187;
905
} else {
Feb 13, 2009
Feb 13, 2009
906
907
908
if(yych <= 0x0D) goto yy73;
if(yych == '\'') goto yy190;
goto yy187;
909
910
}
} else {
Feb 12, 2009
Feb 12, 2009
911
if(yych <= '[') {
Feb 13, 2009
Feb 13, 2009
912
if(yych <= '9') goto yy194;
Feb 12, 2009
Feb 12, 2009
913
914
915
if(yych <= '@') goto yy187;
if(yych <= 'F') goto yy194;
goto yy187;
916
} else {
Feb 12, 2009
Feb 12, 2009
917
918
919
920
if(yych <= '\\') goto yy189;
if(yych <= '`') goto yy187;
if(yych <= 'f') goto yy194;
goto yy187;
921
922
}
}
Feb 12, 2009
Feb 12, 2009
923
924
yy196:
yyaccept = 4;
925
yych = *(YYMARKER = ++YYCURSOR);
Feb 12, 2009
Feb 12, 2009
926
927
928
929
if(yych == 'E') goto yy207;
if(yych == 'e') goto yy207;
goto yy206;
yy197:
930
931
yyaccept = 0;
YYMARKER = ++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
932
if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
933
yych = *YYCURSOR;
Feb 12, 2009
Feb 12, 2009
934
yy198:
Feb 12, 2009
Feb 12, 2009
935
936
if(yych <= 'L') {
if(yych <= '9') {
Feb 12, 2009
Feb 12, 2009
937
if(yych == '.') goto yy196;
Feb 12, 2009
Feb 12, 2009
938
if(yych <= '/') goto yy7;
Feb 12, 2009
Feb 12, 2009
939
goto yy197;
940
} else {
Feb 12, 2009
Feb 12, 2009
941
if(yych == 'E') goto yy199;
Feb 12, 2009
Feb 12, 2009
942
if(yych <= 'K') goto yy7;
Feb 12, 2009
Feb 12, 2009
943
goto yy200;
944
945
}
} else {
Feb 12, 2009
Feb 12, 2009
946
if(yych <= 'e') {
Feb 12, 2009
Feb 12, 2009
947
if(yych == 'U') goto yy200;
Feb 12, 2009
Feb 12, 2009
948
if(yych <= 'd') goto yy7;
949
} else {
Feb 12, 2009
Feb 12, 2009
950
951
if(yych <= 'l') {
if(yych <= 'k') goto yy7;
Feb 12, 2009
Feb 12, 2009
952
goto yy200;
953
} else {
Feb 12, 2009
Feb 12, 2009
954
if(yych == 'u') goto yy200;
955
956
957
958
goto yy7;
}
}
}
Feb 12, 2009
Feb 12, 2009
959
yy199:
960
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
961
if(yych <= ',') {
Feb 12, 2009
Feb 12, 2009
962
if(yych == '+') goto yy202;
963
964
goto yy73;
} else {
Feb 12, 2009
Feb 12, 2009
965
if(yych <= '-') goto yy202;
Feb 12, 2009
Feb 12, 2009
966
if(yych <= '/') goto yy73;
Feb 12, 2009
Feb 12, 2009
967
if(yych <= '9') goto yy203;
968
969
goto yy73;
}
Feb 12, 2009
Feb 12, 2009
970
yy200:
971
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
972
if(YYLIMIT == YYCURSOR) YYFILL(1);
973
yych = *YYCURSOR;
Feb 12, 2009
Feb 12, 2009
974
if(yych <= 'U') {
Feb 12, 2009
Feb 12, 2009
975
if(yych == 'L') goto yy200;
Feb 12, 2009
Feb 12, 2009
976
if(yych <= 'T') goto yy7;
Feb 12, 2009
Feb 12, 2009
977
goto yy200;
978
} else {
Feb 12, 2009
Feb 12, 2009
979
980
if(yych <= 'l') {
if(yych <= 'k') goto yy7;
Feb 12, 2009
Feb 12, 2009
981
goto yy200;
982
} else {
Feb 12, 2009
Feb 12, 2009
983
if(yych == 'u') goto yy200;
984
985
986
goto yy7;
}
}
Feb 12, 2009
Feb 12, 2009
987
yy202:
988
yych = *++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
989
990
if(yych <= '/') goto yy73;
if(yych >= ':') goto yy73;
Feb 12, 2009
Feb 12, 2009
991
yy203:
992
++YYCURSOR;
Feb 12, 2009
Feb 12, 2009
993
if(YYLIMIT == YYCURSOR) YYFILL(1);
994
yych = *YYCURSOR;
Feb 12, 2009
Feb 12, 2009
995
996
if(yych <= 'K') {
if(yych <= '9') {
Feb 12, 2009
Feb 12, 2009
997
998
if(yych <= '/') goto yy181;
goto yy203;
999
} else {
Feb 12, 2009
Feb 12, 2009
1000
if(yych == 'F') goto yy183;