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