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