/
mojoshader_lexer.c
1486 lines (1456 loc) · 28.2 KB
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;
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
int saw_newline = 0;
69
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:
77
if (YYLIMIT == YYCURSOR) YYFILL(1);
78
79
80
81
82
83
84
token = cursor;
{
YYCTYPE yych;
unsigned int yyaccept = 0;
85
if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
86
yych = *YYCURSOR;
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':
118
119
case '9': goto yy10;
case ':': goto yy50;
120
case ';': goto yy58;
121
122
123
case '<': goto yy17;
case '=': goto yy33;
case '>': goto yy15;
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':
177
178
179
180
181
case 'z': goto yy6;
case '[': goto yy42;
case '\\': goto yy2;
case ']': goto yy44;
case '^': goto yy27;
182
case '{': goto yy52;
183
case '|': goto yy31;
184
case '}': goto yy54;
185
186
case '~': goto yy48;
default: goto yy67;
187
188
}
yy2:
189
190
191
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 0x08) goto yy3;
192
193
if (yych <= '\r') goto yy176;
if (yych == ' ') goto yy176;
194
195
196
yy3:
{ goto bad_chars; }
yy4:
197
++YYCURSOR;
198
if ((yych = *YYCURSOR) <= '.') {
199
if (yych == '*') goto yy173;
200
} else {
201
202
if (yych <= '/') goto yy171;
if (yych == '=') goto yy169;
203
}
204
{ RET('/'); }
205
yy6:
206
207
++YYCURSOR;
yych = *YYCURSOR;
208
goto yy168;
209
yy7:
210
{ RET(TOKEN_IDENTIFIER); }
211
212
yy8:
yyaccept = 1;
213
yych = *(YYMARKER = ++YYCURSOR);
214
215
if (yych <= 'X') {
if (yych <= 'T') {
216
217
if (yych == 'L') goto yy143;
goto yy159;
218
} else {
219
220
221
if (yych <= 'U') goto yy143;
if (yych <= 'W') goto yy159;
goto yy160;
222
223
}
} else {
224
if (yych <= 't') {
225
226
if (yych == 'l') goto yy143;
goto yy159;
227
} else {
228
229
230
if (yych <= 'u') goto yy143;
if (yych == 'x') goto yy160;
goto yy159;
231
232
233
}
}
yy9:
234
235
{ RET(TOKEN_INT_LITERAL); }
yy10:
236
237
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
238
goto yy141;
239
yy11:
240
241
242
243
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych == '\n') goto yy3;
if (yych == '\r') goto yy3;
244
goto yy131;
245
yy12:
246
247
++YYCURSOR;
if ((yych = *YYCURSOR) <= '/') goto yy13;
248
if (yych <= '9') goto yy122;
249
yy13:
250
{ RET('.'); }
251
yy14:
252
253
254
255
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych == '\n') goto yy3;
if (yych == '\r') goto yy3;
256
goto yy112;
257
258
yy15:
++YYCURSOR;
259
if ((yych = *YYCURSOR) <= '<') goto yy16;
260
261
if (yych <= '=') goto yy105;
if (yych <= '>') goto yy107;
262
263
yy16:
{ RET('>'); }
264
yy17:
265
266
++YYCURSOR;
if ((yych = *YYCURSOR) <= ';') goto yy18;
267
268
if (yych <= '<') goto yy101;
if (yych <= '=') goto yy99;
269
yy18:
270
271
{ RET('<'); }
yy19:
272
++YYCURSOR;
273
274
if ((yych = *YYCURSOR) == '+') goto yy95;
if (yych == '=') goto yy97;
275
{ RET('+'); }
276
yy21:
277
++YYCURSOR;
278
279
if ((yych = *YYCURSOR) == '-') goto yy91;
if (yych == '=') goto yy93;
280
{ RET('-'); }
281
yy23:
282
++YYCURSOR;
283
if ((yych = *YYCURSOR) == '=') goto yy89;
284
{ RET('*'); }
285
yy25:
286
++YYCURSOR;
287
if ((yych = *YYCURSOR) == '=') goto yy87;
288
{ RET('%'); }
289
yy27:
290
++YYCURSOR;
291
if ((yych = *YYCURSOR) == '=') goto yy85;
292
{ RET('^'); }
293
yy29:
294
++YYCURSOR;
295
296
if ((yych = *YYCURSOR) == '&') goto yy81;
if (yych == '=') goto yy83;
297
{ RET('&'); }
298
yy31:
299
++YYCURSOR;
300
301
if ((yych = *YYCURSOR) == '=') goto yy79;
if (yych == '|') goto yy77;
302
{ RET('|'); }
303
yy33:
304
++YYCURSOR;
305
if ((yych = *YYCURSOR) == '=') goto yy75;
306
{ RET('='); }
307
yy35:
308
++YYCURSOR;
309
if ((yych = *YYCURSOR) == '=') goto yy73;
310
{ RET('!'); }
311
yy37:
312
313
314
yych = *++YYCURSOR;
if (yych == '#') goto yy71;
goto yy3;
315
yy38:
316
++YYCURSOR;
317
{ RET('('); }
318
yy40:
319
++YYCURSOR;
320
{ RET(')'); }
321
yy42:
322
++YYCURSOR;
323
{ RET('['); }
324
yy44:
325
++YYCURSOR;
326
{ RET(']'); }
327
yy46:
328
++YYCURSOR;
329
{ RET(','); }
330
yy48:
331
++YYCURSOR;
332
{ RET('~'); }
333
yy50:
334
335
++YYCURSOR;
{ RET(':'); }
336
yy52:
337
++YYCURSOR;
338
{ RET('{'); }
339
yy54:
340
++YYCURSOR;
341
{ RET('}'); }
342
yy56:
343
++YYCURSOR;
344
{ RET('?'); }
345
yy58:
346
++YYCURSOR;
347
{ if (s->asm_comments) goto singlelinecomment; RET(';'); }
348
yy60:
349
++YYCURSOR;
350
351
{ if (eoi) { RET(TOKEN_EOI); } goto bad_chars; }
yy62:
352
353
++YYCURSOR;
yych = *YYCURSOR;
354
goto yy70;
355
yy63:
356
{ if (s->report_whitespace) RET(' '); goto scanner_loop; }
357
yy64:
358
++YYCURSOR;
359
yy65:
360
{ s->line++; RET('\n'); }
361
362
yy66:
yych = *++YYCURSOR;
363
364
if (yych == '\n') goto yy68;
goto yy65;
365
366
yy67:
yych = *++YYCURSOR;
367
goto yy3;
368
yy68:
369
370
371
yych = *++YYCURSOR;
goto yy65;
yy69:
372
++YYCURSOR;
373
if (YYLIMIT <= YYCURSOR) YYFILL(1);
374
yych = *YYCURSOR;
375
376
377
378
yy70:
if (yych <= '\n') {
if (yych == '\t') goto yy69;
goto yy63;
379
} else {
380
381
382
if (yych <= '\f') goto yy69;
if (yych == ' ') goto yy69;
goto yy63;
383
}
384
yy71:
385
386
++YYCURSOR;
{ RET(TOKEN_HASHHASH); }
387
yy73:
388
389
++YYCURSOR;
{ RET(TOKEN_NEQ); }
390
yy75:
391
392
++YYCURSOR;
{ RET(TOKEN_EQL); }
393
yy77:
394
395
++YYCURSOR;
{ RET(TOKEN_OROR); }
396
yy79:
397
++YYCURSOR;
398
{ RET(TOKEN_ORASSIGN); }
399
yy81:
400
++YYCURSOR;
401
{ RET(TOKEN_ANDAND); }
402
yy83:
403
++YYCURSOR;
404
{ RET(TOKEN_ANDASSIGN); }
405
yy85:
406
++YYCURSOR;
407
{ RET(TOKEN_XORASSIGN); }
408
yy87:
409
++YYCURSOR;
410
{ RET(TOKEN_MODASSIGN); }
411
yy89:
412
413
++YYCURSOR;
{ RET(TOKEN_MULTASSIGN); }
414
yy91:
415
416
++YYCURSOR;
{ RET(TOKEN_DECREMENT); }
417
yy93:
418
419
++YYCURSOR;
{ RET(TOKEN_SUBASSIGN); }
420
yy95:
421
422
++YYCURSOR;
{ RET(TOKEN_INCREMENT); }
423
yy97:
424
425
++YYCURSOR;
{ RET(TOKEN_ADDASSIGN); }
426
yy99:
427
428
++YYCURSOR;
{ RET(TOKEN_LEQ); }
429
yy101:
430
++YYCURSOR;
431
if ((yych = *YYCURSOR) == '=') goto yy103;
432
{ RET(TOKEN_LSHIFT); }
433
yy103:
434
435
++YYCURSOR;
{ RET(TOKEN_LSHIFTASSIGN); }
436
yy105:
437
438
++YYCURSOR;
{ RET(TOKEN_GEQ); }
439
yy107:
440
++YYCURSOR;
441
if ((yych = *YYCURSOR) == '=') goto yy109;
442
{ RET(TOKEN_RSHIFT); }
443
yy109:
444
445
++YYCURSOR;
{ RET(TOKEN_RSHIFTASSIGN); }
446
yy111:
447
++YYCURSOR;
448
if (YYLIMIT <= YYCURSOR) YYFILL(1);
449
yych = *YYCURSOR;
450
yy112:
451
if (yych <= '\r') {
452
453
if (yych == '\n') goto yy113;
if (yych <= '\f') goto yy111;
454
} else {
455
if (yych <= '"') {
456
457
if (yych <= '!') goto yy111;
goto yy115;
458
} else {
459
460
if (yych == '\\') goto yy114;
goto yy111;
461
}
462
}
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;
476
if (YYLIMIT <= YYCURSOR) YYFILL(1);
477
yych = *YYCURSOR;
478
479
480
if (yych <= 'b') {
if (yych <= '7') {
if (yych <= '&') {
481
482
if (yych == '"') goto yy111;
goto yy113;
483
} else {
484
485
486
if (yych <= '\'') goto yy111;
if (yych <= '/') goto yy113;
goto yy118;
487
488
}
} else {
489
if (yych <= '[') {
490
491
if (yych == '?') goto yy111;
goto yy113;
492
} else {
493
494
495
if (yych <= '\\') goto yy111;
if (yych <= '`') goto yy113;
goto yy111;
496
497
498
}
}
} else {
499
500
if (yych <= 'r') {
if (yych <= 'm') {
501
502
if (yych == 'f') goto yy111;
goto yy113;
503
} else {
504
505
506
if (yych <= 'n') goto yy111;
if (yych <= 'q') goto yy113;
goto yy111;
507
508
}
} else {
509
if (yych <= 'u') {
510
511
if (yych == 't') goto yy111;
goto yy113;
512
} else {
513
514
515
if (yych <= 'v') goto yy111;
if (yych == 'x') goto yy117;
goto yy113;
516
517
518
}
}
}
519
yy115:
520
521
++YYCURSOR;
{ RET(TOKEN_STRING_LITERAL); }
522
yy117:
523
++YYCURSOR;
524
if (YYLIMIT <= YYCURSOR) YYFILL(1);
525
yych = *YYCURSOR;
526
if (yych <= '@') {
527
528
529
if (yych <= '/') goto yy113;
if (yych <= '9') goto yy120;
goto yy113;
530
} else {
531
532
533
534
if (yych <= 'F') goto yy120;
if (yych <= '`') goto yy113;
if (yych <= 'f') goto yy120;
goto yy113;
535
}
536
yy118:
537
++YYCURSOR;
538
if (YYLIMIT <= YYCURSOR) YYFILL(1);
539
yych = *YYCURSOR;
540
541
if (yych <= '!') {
if (yych <= '\n') {
542
543
if (yych <= '\t') goto yy111;
goto yy113;
544
} else {
545
546
if (yych == '\r') goto yy113;
goto yy111;
547
}
548
} else {
549
if (yych <= '7') {
550
551
552
if (yych <= '"') goto yy115;
if (yych <= '/') goto yy111;
goto yy118;
553
} else {
554
555
if (yych == '\\') goto yy114;
goto yy111;
556
557
}
}
558
yy120:
559
++YYCURSOR;
560
if (YYLIMIT <= YYCURSOR) YYFILL(1);
561
yych = *YYCURSOR;
562
563
if (yych <= '/') {
if (yych <= '\f') {
564
565
if (yych == '\n') goto yy113;
goto yy111;
566
} else {
567
568
569
if (yych <= '\r') goto yy113;
if (yych == '"') goto yy115;
goto yy111;
570
571
}
} else {
572
if (yych <= '[') {
573
574
575
576
if (yych <= '9') goto yy120;
if (yych <= '@') goto yy111;
if (yych <= 'F') goto yy120;
goto yy111;
577
} else {
578
579
580
581
if (yych <= '\\') goto yy114;
if (yych <= '`') goto yy111;
if (yych <= 'f') goto yy120;
goto yy111;
582
583
}
}
584
585
yy122:
yyaccept = 2;
586
YYMARKER = ++YYCURSOR;
587
if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
588
yych = *YYCURSOR;
589
590
if (yych <= 'K') {
if (yych <= 'D') {
591
592
if (yych <= '/') goto yy124;
if (yych <= '9') goto yy122;
593
} else {
594
595
if (yych <= 'E') goto yy125;
if (yych <= 'F') goto yy126;
596
597
}
} else {
598
if (yych <= 'e') {
599
600
if (yych <= 'L') goto yy126;
if (yych >= 'e') goto yy125;
601
} else {
602
603
if (yych <= 'f') goto yy126;
if (yych == 'l') goto yy126;
604
605
}
}
606
yy124:
607
{ RET(TOKEN_FLOAT_LITERAL); }
608
yy125:
609
yych = *++YYCURSOR;
610
if (yych <= ',') {
611
612
if (yych == '+') goto yy127;
goto yy113;
613
} else {
614
615
616
617
if (yych <= '-') goto yy127;
if (yych <= '/') goto yy113;
if (yych <= '9') goto yy128;
goto yy113;
618
}
619
yy126:
620
yych = *++YYCURSOR;
621
622
goto yy124;
yy127:
623
yych = *++YYCURSOR;
624
625
626
if (yych <= '/') goto yy113;
if (yych >= ':') goto yy113;
yy128:
627
++YYCURSOR;
628
if (YYLIMIT <= YYCURSOR) YYFILL(1);
629
yych = *YYCURSOR;
630
631
if (yych <= 'K') {
if (yych <= '9') {
632
633
if (yych <= '/') goto yy124;
goto yy128;
634
} else {
635
636
if (yych == 'F') goto yy126;
goto yy124;
637
638
}
} else {
639
if (yych <= 'f') {
640
641
642
if (yych <= 'L') goto yy126;
if (yych <= 'e') goto yy124;
goto yy126;
643
} else {
644
645
if (yych == 'l') goto yy126;
goto yy124;
646
647
}
}
648
yy130:
649
++YYCURSOR;
650
if (YYLIMIT <= YYCURSOR) YYFILL(1);
651
yych = *YYCURSOR;
652
yy131:
653
if (yych <= '\r') {
654
655
656
if (yych == '\n') goto yy113;
if (yych <= '\f') goto yy130;
goto yy113;
657
} else {
658
if (yych <= '\'') {
659
660
if (yych <= '&') goto yy130;
goto yy133;
661
} else {
662
if (yych != '\\') goto yy130;
663
}
664
}
665
yy132:
666
++YYCURSOR;
667
if (YYLIMIT <= YYCURSOR) YYFILL(1);
668
yych = *YYCURSOR;
669
670
671
if (yych <= 'b') {
if (yych <= '7') {
if (yych <= '&') {
672
673
if (yych == '"') goto yy130;
goto yy113;
674
} else {
675
676
677
if (yych <= '\'') goto yy130;
if (yych <= '/') goto yy113;
goto yy135;
678
679
}
} else {
680
if (yych <= '[') {
681
682
if (yych == '?') goto yy130;
goto yy113;
683
} else {
684
685
686
if (yych <= '\\') goto yy130;
if (yych <= '`') goto yy113;
goto yy130;
687
688
689
}
}
} else {
690
691
if (yych <= 'r') {
if (yych <= 'm') {
692
693
if (yych == 'f') goto yy130;
goto yy113;
694
} else {
695
696
697
if (yych <= 'n') goto yy130;
if (yych <= 'q') goto yy113;
goto yy130;
698
699
}
} else {
700
if (yych <= 'u') {
701
702
if (yych == 't') goto yy130;
goto yy113;
703
} else {
704
705
706
if (yych <= 'v') goto yy130;
if (yych == 'x') goto yy134;
goto yy113;
707
708
709
}
}
}
710
yy133:
711
712
yych = *++YYCURSOR;
goto yy9;
713
yy134:
714
++YYCURSOR;
715
if (YYLIMIT <= YYCURSOR) YYFILL(1);
716
yych = *YYCURSOR;
717
if (yych <= '@') {
718
719
720
if (yych <= '/') goto yy113;
if (yych <= '9') goto yy137;
goto yy113;
721
} else {
722
723
724
725
if (yych <= 'F') goto yy137;
if (yych <= '`') goto yy113;
if (yych <= 'f') goto yy137;
goto yy113;
726
}
727
yy135:
728
++YYCURSOR;
729
if (YYLIMIT <= YYCURSOR) YYFILL(1);
730
yych = *YYCURSOR;
731
732
if (yych <= '&') {
if (yych <= '\n') {
733
734
if (yych <= '\t') goto yy130;
goto yy113;
735
} else {
736
737
if (yych == '\r') goto yy113;
goto yy130;
738
}
739
} else {
740
if (yych <= '7') {
741
742
743
if (yych <= '\'') goto yy133;
if (yych <= '/') goto yy130;
goto yy135;
744
} else {
745
746
if (yych == '\\') goto yy132;
goto yy130;
747
748
}
}
749
yy137:
750
++YYCURSOR;
751
if (YYLIMIT <= YYCURSOR) YYFILL(1);
752
yych = *YYCURSOR;
753
754
if (yych <= '/') {
if (yych <= '\f') {
755
756
if (yych == '\n') goto yy113;
goto yy130;
757
} else {
758
759
760
if (yych <= '\r') goto yy113;
if (yych == '\'') goto yy133;
goto yy130;
761
762
}
} else {
763
if (yych <= '[') {
764
765
766
767
if (yych <= '9') goto yy137;
if (yych <= '@') goto yy130;
if (yych <= 'F') goto yy137;
goto yy130;
768
} else {
769
770
771
772
if (yych <= '\\') goto yy132;
if (yych <= '`') goto yy130;
if (yych <= 'f') goto yy137;
goto yy130;
773
774
}
}
775
776
yy139:
yyaccept = 2;
777
yych = *(YYMARKER = ++YYCURSOR);
778
779
780
781
if (yych == 'E') goto yy150;
if (yych == 'e') goto yy150;
goto yy149;
yy140:
782
yyaccept = 1;
783
YYMARKER = ++YYCURSOR;
784
if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
785
yych = *YYCURSOR;
786
yy141:
787
788
if (yych <= 'L') {
if (yych <= '9') {
789
if (yych == '.') goto yy139;
790
if (yych <= '/') goto yy9;
791
goto yy140;
792
} else {
793
if (yych == 'E') goto yy142;
794
if (yych <= 'K') goto yy9;
795
goto yy143;
796
797
}
} else {
798
if (yych <= 'e') {
799
if (yych == 'U') goto yy143;
800
if (yych <= 'd') goto yy9;
801
} else {
802
803
if (yych <= 'l') {
if (yych <= 'k') goto yy9;
804
goto yy143;
805
} else {
806
if (yych == 'u') goto yy143;
807
goto yy9;
808
809
810
}
}
}
811
yy142:
812
yych = *++YYCURSOR;
813
if (yych <= ',') {
814
815
if (yych == '+') goto yy145;
goto yy113;
816
} else {
817
818
819
820
if (yych <= '-') goto yy145;
if (yych <= '/') goto yy113;
if (yych <= '9') goto yy146;
goto yy113;
821
}
822
yy143:
823
++YYCURSOR;
824
if (YYLIMIT <= YYCURSOR) YYFILL(1);
825
yych = *YYCURSOR;
826
if (yych <= 'U') {
827
if (yych == 'L') goto yy143;
828
if (yych <= 'T') goto yy9;
829
goto yy143;
830
} else {
831
832
if (yych <= 'l') {
if (yych <= 'k') goto yy9;
833
goto yy143;
834
} else {
835
if (yych == 'u') goto yy143;
836
goto yy9;
837
838
}
}
839
yy145:
840
yych = *++YYCURSOR;
841
842
843
if (yych <= '/') goto yy113;
if (yych >= ':') goto yy113;
yy146:
844
++YYCURSOR;
845
if (YYLIMIT <= YYCURSOR) YYFILL(1);
846
yych = *YYCURSOR;
847
848
if (yych <= 'K') {
if (yych <= '9') {
849
850
if (yych <= '/') goto yy124;
goto yy146;
851
} else {
852
853
if (yych == 'F') goto yy126;
goto yy124;
854
855
}
} else {
856
if (yych <= 'f') {
857
858
859
if (yych <= 'L') goto yy126;
if (yych <= 'e') goto yy124;
goto yy126;
860
} else {
861
862
if (yych == 'l') goto yy126;
goto yy124;
863
864
}
}
865
866
yy148:
yyaccept = 2;
867
YYMARKER = ++YYCURSOR;
868
if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
869
yych = *YYCURSOR;
870
yy149:
871
872
if (yych <= 'K') {
if (yych <= 'D') {
873
874
875
if (yych <= '/') goto yy124;
if (yych <= '9') goto yy148;
goto yy124;
876
} else {
877
878
879
if (yych <= 'E') goto yy154;
if (yych <= 'F') goto yy126;
goto yy124;
880
881
}
} else {
882
if (yych <= 'e') {
883
884
885
if (yych <= 'L') goto yy126;
if (yych <= 'd') goto yy124;
goto yy154;
886
} else {
887
888
889
if (yych <= 'f') goto yy126;
if (yych == 'l') goto yy126;
goto yy124;
890
891
}
}
892
yy150:
893
yych = *++YYCURSOR;
894
if (yych <= ',') {
895
if (yych != '+') goto yy113;
896
} else {
897
898
899
900
if (yych <= '-') goto yy151;
if (yych <= '/') goto yy113;
if (yych <= '9') goto yy152;
goto yy113;
901
}
902
yy151:
903
yych = *++YYCURSOR;
904
905
906
if (yych <= '/') goto yy113;
if (yych >= ':') goto yy113;
yy152:
907
++YYCURSOR;
908
if (YYLIMIT <= YYCURSOR) YYFILL(1);
909
yych = *YYCURSOR;
910
911
if (yych <= 'K') {
if (yych <= '9') {
912
913
if (yych <= '/') goto yy124;
goto yy152;
914
} else {
915
916
if (yych == 'F') goto yy126;
goto yy124;
917
918
}
} else {
919
if (yych <= 'f') {
920
921
922
if (yych <= 'L') goto yy126;
if (yych <= 'e') goto yy124;
goto yy126;
923
} else {
924
925
if (yych == 'l') goto yy126;
goto yy124;
926
927
}
}
928
yy154:
929
yych = *++YYCURSOR;
930
if (yych <= ',') {
931
if (yych != '+') goto yy113;
932
} else {
933
934
935
936
if (yych <= '-') goto yy155;
if (yych <= '/') goto yy113;
if (yych <= '9') goto yy156;
goto yy113;
937
}
938
yy155:
939
yych = *++YYCURSOR;
940
941
942
if (yych <= '/') goto yy113;
if (yych >= ':') goto yy113;
yy156:
943
++YYCURSOR;
944
if (YYLIMIT <= YYCURSOR) YYFILL(1);
945
yych = *YYCURSOR;
946
947
if (yych <= 'K') {
if (yych <= '9') {
948
949
if (yych <= '/') goto yy124;
goto yy156;
950
} else {
951
952
if (yych == 'F') goto yy126;
goto yy124;
953
954
}
} else {
955
if (yych <= 'f') {
956
957
958
if (yych <= 'L') goto yy126;
if (yych <= 'e') goto yy124;
goto yy126;
959
} else {
960
961
if (yych == 'l') goto yy126;
goto yy124;
962
963
}
}
964
yy158:
965
yyaccept = 1;
966
YYMARKER = ++YYCURSOR;
967
if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
968
yych = *YYCURSOR;
969
yy159:
970
971
if (yych <= 'L') {
if (yych <= '9') {
972
if (yych == '.') goto yy139;
973
if (yych <= '/') goto yy9;
974
goto yy158;
975
} else {
976
if (yych == 'E') goto yy142;
977
if (yych <= 'K') goto yy9;
978
goto yy165;
979
980
}
} else {
981
if (yych <= 'e') {
982
if (yych == 'U') goto yy165;
983
if (yych <= 'd') goto yy9;
984
goto yy142;
985
} else {
986
987
if (yych <= 'l') {
if (yych <= 'k') goto yy9;
988
goto yy165;
989
} else {
990
if (yych == 'u') goto yy165;
991
goto yy9;
992
993
994
}
}
}
995
yy160:
996
yych = *++YYCURSOR;
997
if (yych <= '@') {
998
999
if (yych <= '/') goto yy113;
if (yych >= ':') goto yy113;
1000
} else {