Skip to content

Latest commit

 

History

History
1457 lines (1430 loc) · 32.4 KB

mojoshader_lexer.c

File metadata and controls

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