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