mojoshader_lexer.c
changeset 600 f42d58194dc1
parent 584 9aea8877564d
child 602 9c976d7465bf
equal deleted inserted replaced
599:cef9f9f0f4f4 600:f42d58194dc1
     1 /* Generated by re2c 0.12.1 on Thu Feb 12 13:52:20 2009 */
     1 /* Generated by re2c 0.12.1 on Fri Feb 13 00:36:29 2009 */
     2 #line 1 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
     3 /**
     2 /**
     4  * MojoShader; generate shader programs from bytecode of compiled
     3  * MojoShader; generate shader programs from bytecode of compiled
     5  *  Direct3D shaders.
     4  *  Direct3D shaders.
     6  *
     5  *
     7  * Please see the file LICENSE.txt in the source's root directory.
     6  * Please see the file LICENSE.txt in the source's root directory.
    42 
    41 
    43 Token preprocessor_internal_lexer(IncludeState *s)
    42 Token preprocessor_internal_lexer(IncludeState *s)
    44 {
    43 {
    45     const uchar *cursor = (const uchar *) s->source;
    44     const uchar *cursor = (const uchar *) s->source;
    46     const uchar *token;
    45     const uchar *token;
       
    46     const uchar *matchptr;
    47     const uchar *limit = cursor + s->bytes_left;
    47     const uchar *limit = cursor + s->bytes_left;
    48     int saw_newline = 0;
    48     int saw_newline = 0;
    49 
    49 
    50 scanner_loop:
    50 scanner_loop:
    51     token = cursor;
    51     token = cursor;
    52 
    52 
    53     if (YYLIMIT == YYCURSOR)
    53     if (YYLIMIT == YYCURSOR)
    54         RET(TOKEN_EOI);
    54         RET(TOKEN_EOI);
    55 
    55 
    56 #line 67 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
    56 
    57 
    57 
    58 
    58 
    59 
       
    60 #line 61 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
    61 {
    59 {
    62 	YYCTYPE yych;
    60 	YYCTYPE yych;
    63 	unsigned int yyaccept = 0;
    61 	unsigned int yyaccept = 0;
    64 
    62 
    65 	if((YYLIMIT - YYCURSOR) < 8) YYFILL(8);
    63 	if((YYLIMIT - YYCURSOR) < 8) YYFILL(8);
   170 		if(yych == '*') goto yy230;
   168 		if(yych == '*') goto yy230;
   171 	} else {
   169 	} else {
   172 		if(yych <= '/') goto yy228;
   170 		if(yych <= '/') goto yy228;
   173 		if(yych == '=') goto yy226;
   171 		if(yych == '=') goto yy226;
   174 	}
   172 	}
   175 #line 118 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   176 	{ RET('/'); }
   173 	{ RET('/'); }
   177 #line 178 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   178 yy4:
   174 yy4:
   179 	++YYCURSOR;
   175 	++YYCURSOR;
   180 	yych = *YYCURSOR;
   176 	yych = *YYCURSOR;
   181 	goto yy225;
   177 	goto yy225;
   182 yy5:
   178 yy5:
   183 #line 73 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   184 	{ RET(TOKEN_IDENTIFIER); }
   179 	{ RET(TOKEN_IDENTIFIER); }
   185 #line 186 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   186 yy6:
   180 yy6:
   187 	yyaccept = 0;
   181 	yyaccept = 0;
   188 	yych = *(YYMARKER = ++YYCURSOR);
   182 	yych = *(YYMARKER = ++YYCURSOR);
   189 	if(yych <= 'X') {
   183 	if(yych <= 'X') {
   190 		if(yych <= 'T') {
   184 		if(yych <= 'T') {
   204 			if(yych == 'x') goto yy217;
   198 			if(yych == 'x') goto yy217;
   205 			goto yy216;
   199 			goto yy216;
   206 		}
   200 		}
   207 	}
   201 	}
   208 yy7:
   202 yy7:
   209 #line 77 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   210 	{ RET(TOKEN_INT_LITERAL); }
   203 	{ RET(TOKEN_INT_LITERAL); }
   211 #line 212 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   212 yy8:
   204 yy8:
   213 	yyaccept = 0;
   205 	yyaccept = 0;
   214 	yych = *(YYMARKER = ++YYCURSOR);
   206 	yych = *(YYMARKER = ++YYCURSOR);
   215 	goto yy198;
   207 	goto yy198;
   216 yy9:
   208 yy9:
   217 	yyaccept = 1;
   209 	yyaccept = 1;
   218 	yych = *(YYMARKER = ++YYCURSOR);
   210 	yych = *(YYMARKER = ++YYCURSOR);
   219 	if(yych != 0x0A) goto yy188;
   211 	if(yych == 0x0A) goto yy10;
       
   212 	if(yych != 0x0D) goto yy188;
   220 yy10:
   213 yy10:
   221 #line 147 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
   214 	{ goto bad_chars; }
   222 	{ printf("bad char\n"); goto scanner_loop; }
       
   223 #line 224 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   224 yy11:
   215 yy11:
   225 	++YYCURSOR;
   216 	++YYCURSOR;
   226 	if((yych = *YYCURSOR) <= '/') goto yy12;
   217 	if((yych = *YYCURSOR) <= '/') goto yy12;
   227 	if(yych <= '9') goto yy179;
   218 	if(yych <= '9') goto yy179;
   228 yy12:
   219 yy12:
   229 #line 110 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   230 	{ RET('.'); }
   220 	{ RET('.'); }
   231 #line 232 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   232 yy13:
   221 yy13:
   233 	yyaccept = 1;
   222 	yyaccept = 1;
   234 	yych = *(YYMARKER = ++YYCURSOR);
   223 	yych = *(YYMARKER = ++YYCURSOR);
   235 	if(yych == 0x0A) goto yy10;
   224 	if(yych == 0x0A) goto yy10;
       
   225 	if(yych == 0x0D) goto yy10;
   236 	goto yy170;
   226 	goto yy170;
   237 yy14:
   227 yy14:
   238 	++YYCURSOR;
   228 	++YYCURSOR;
   239 	if((yych = *YYCURSOR) <= '<') goto yy15;
   229 	if((yych = *YYCURSOR) <= '<') goto yy15;
   240 	if(yych <= '=') goto yy163;
   230 	if(yych <= '=') goto yy163;
   241 	if(yych <= '>') goto yy165;
   231 	if(yych <= '>') goto yy165;
   242 yy15:
   232 yy15:
   243 #line 121 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   244 	{ RET('>'); }
   233 	{ RET('>'); }
   245 #line 246 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   246 yy16:
   234 yy16:
   247 	++YYCURSOR;
   235 	++YYCURSOR;
   248 	if((yych = *YYCURSOR) <= ';') goto yy17;
   236 	if((yych = *YYCURSOR) <= ';') goto yy17;
   249 	if(yych <= '<') goto yy159;
   237 	if(yych <= '<') goto yy159;
   250 	if(yych <= '=') goto yy157;
   238 	if(yych <= '=') goto yy157;
   251 yy17:
   239 yy17:
   252 #line 120 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   253 	{ RET('<'); }
   240 	{ RET('<'); }
   254 #line 255 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   255 yy18:
   241 yy18:
   256 	++YYCURSOR;
   242 	++YYCURSOR;
   257 	if((yych = *YYCURSOR) == '+') goto yy153;
   243 	if((yych = *YYCURSOR) == '+') goto yy153;
   258 	if(yych == '=') goto yy155;
   244 	if(yych == '=') goto yy155;
   259 #line 116 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   260 	{ RET('+'); }
   245 	{ RET('+'); }
   261 #line 262 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   262 yy20:
   246 yy20:
   263 	++YYCURSOR;
   247 	++YYCURSOR;
   264 	if((yych = *YYCURSOR) == '-') goto yy149;
   248 	if((yych = *YYCURSOR) == '-') goto yy149;
   265 	if(yych == '=') goto yy151;
   249 	if(yych == '=') goto yy151;
   266 #line 115 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   267 	{ RET('-'); }
   250 	{ RET('-'); }
   268 #line 269 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   269 yy22:
   251 yy22:
   270 	++YYCURSOR;
   252 	++YYCURSOR;
   271 	if((yych = *YYCURSOR) == '=') goto yy147;
   253 	if((yych = *YYCURSOR) == '=') goto yy147;
   272 #line 117 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   273 	{ RET('*'); }
   254 	{ RET('*'); }
   274 #line 275 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   275 yy24:
   255 yy24:
   276 	++YYCURSOR;
   256 	++YYCURSOR;
   277 	if((yych = *YYCURSOR) == '=') goto yy145;
   257 	if((yych = *YYCURSOR) == '=') goto yy145;
   278 #line 119 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   279 	{ RET('%'); }
   258 	{ RET('%'); }
   280 #line 281 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   281 yy26:
   259 yy26:
   282 	++YYCURSOR;
   260 	++YYCURSOR;
   283 	if((yych = *YYCURSOR) == '=') goto yy143;
   261 	if((yych = *YYCURSOR) == '=') goto yy143;
   284 #line 122 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   285 	{ RET('^'); }
   262 	{ RET('^'); }
   286 #line 287 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   287 yy28:
   263 yy28:
   288 	++YYCURSOR;
   264 	++YYCURSOR;
   289 	if((yych = *YYCURSOR) == '&') goto yy139;
   265 	if((yych = *YYCURSOR) == '&') goto yy139;
   290 	if(yych == '=') goto yy141;
   266 	if(yych == '=') goto yy141;
   291 #line 112 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   292 	{ RET('&'); }
   267 	{ RET('&'); }
   293 #line 294 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   294 yy30:
   268 yy30:
   295 	++YYCURSOR;
   269 	++YYCURSOR;
   296 	if((yych = *YYCURSOR) == '=') goto yy137;
   270 	if((yych = *YYCURSOR) == '=') goto yy137;
   297 	if(yych == '|') goto yy135;
   271 	if(yych == '|') goto yy135;
   298 #line 123 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   299 	{ RET('|'); }
   272 	{ RET('|'); }
   300 #line 301 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   301 yy32:
   273 yy32:
   302 	++YYCURSOR;
   274 	++YYCURSOR;
   303 	if((yych = *YYCURSOR) == '=') goto yy133;
   275 	if((yych = *YYCURSOR) == '=') goto yy133;
   304 #line 128 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   305 	{ RET('='); }
   276 	{ RET('='); }
   306 #line 307 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   307 yy34:
   277 yy34:
   308 	++YYCURSOR;
   278 	++YYCURSOR;
   309 	if((yych = *YYCURSOR) == '=') goto yy131;
   279 	if((yych = *YYCURSOR) == '=') goto yy131;
   310 #line 113 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   311 	{ RET('!'); }
   280 	{ RET('!'); }
   312 #line 313 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   313 yy36:
   281 yy36:
   314 	yyaccept = 2;
   282 	yyaccept = 2;
   315 	yych = *(YYMARKER = ++YYCURSOR);
   283 	yych = *(YYMARKER = ++YYCURSOR);
   316 	if(yych <= 'c') {
   284 	if(yych <= 'c') {
   317 		if(yych <= 0x1F) {
   285 		if(yych <= 0x1F) {
   328 			if(yych <= 'l') goto yy72;
   296 			if(yych <= 'l') goto yy72;
   329 			if(yych == 'u') goto yy72;
   297 			if(yych == 'u') goto yy72;
   330 		}
   298 		}
   331 	}
   299 	}
   332 yy37:
   300 yy37:
   333 #line 131 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   334 	{ RET('#'); }
   301 	{ RET('#'); }
   335 #line 336 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   336 yy38:
   302 yy38:
   337 	++YYCURSOR;
   303 	++YYCURSOR;
   338 #line 106 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   339 	{ RET('('); }
   304 	{ RET('('); }
   340 #line 341 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   341 yy40:
   305 yy40:
   342 	++YYCURSOR;
   306 	++YYCURSOR;
   343 #line 107 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   344 	{ RET(')'); }
   307 	{ RET(')'); }
   345 #line 346 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   346 yy42:
   308 yy42:
   347 	++YYCURSOR;
   309 	++YYCURSOR;
   348 #line 108 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   349 	{ RET('['); }
   310 	{ RET('['); }
   350 #line 351 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   351 yy44:
   311 yy44:
   352 	++YYCURSOR;
   312 	++YYCURSOR;
   353 #line 109 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   354 	{ RET(']'); }
   313 	{ RET(']'); }
   355 #line 356 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   356 yy46:
   314 yy46:
   357 	++YYCURSOR;
   315 	++YYCURSOR;
   358 #line 111 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   359 	{ RET(','); }
   316 	{ RET(','); }
   360 #line 361 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   361 yy48:
   317 yy48:
   362 	++YYCURSOR;
   318 	++YYCURSOR;
   363 #line 114 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   364 	{ RET('~'); }
   319 	{ RET('~'); }
   365 #line 366 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   366 yy50:
   320 yy50:
   367 	++YYCURSOR;
   321 	++YYCURSOR;
   368 #line 124 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   369 	{ RET(':'); }
   322 	{ RET(':'); }
   370 #line 371 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   371 yy52:
   323 yy52:
   372 	++YYCURSOR;
   324 	++YYCURSOR;
   373 #line 125 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   374 	{ RET(';'); }
   325 	{ RET(';'); }
   375 #line 376 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   376 yy54:
   326 yy54:
   377 	++YYCURSOR;
   327 	++YYCURSOR;
   378 #line 126 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   379 	{ RET('{'); }
   328 	{ RET('{'); }
   380 #line 381 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   381 yy56:
   329 yy56:
   382 	++YYCURSOR;
   330 	++YYCURSOR;
   383 #line 127 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   384 	{ RET('}'); }
   331 	{ RET('}'); }
   385 #line 386 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   386 yy58:
   332 yy58:
   387 	++YYCURSOR;
   333 	++YYCURSOR;
   388 #line 129 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   389 	{ RET('?'); }
   334 	{ RET('?'); }
   390 #line 391 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   391 yy60:
   335 yy60:
   392 	++YYCURSOR;
   336 	++YYCURSOR;
   393 #line 130 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   394 	{ RET('\\'); }
   337 	{ RET('\\'); }
   395 #line 396 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   396 yy62:
   338 yy62:
   397 	++YYCURSOR;
   339 	++YYCURSOR;
   398 	yych = *YYCURSOR;
   340 	yych = *YYCURSOR;
   399 	goto yy70;
   341 	goto yy70;
   400 yy63:
   342 yy63:
   401 #line 145 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   402 	{ goto scanner_loop; }
   343 	{ goto scanner_loop; }
   403 #line 404 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   404 yy64:
   344 yy64:
   405 	++YYCURSOR;
   345 	++YYCURSOR;
   406 yy65:
   346 yy65:
   407 #line 146 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   408 	{ s->line++; RET('\n'); }
   347 	{ s->line++; RET('\n'); }
   409 #line 410 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   410 yy66:
   348 yy66:
   411 	yych = *++YYCURSOR;
   349 	yych = *++YYCURSOR;
   412 	if(yych == 0x0A) goto yy68;
   350 	if(yych == 0x0A) goto yy68;
   413 	goto yy65;
   351 	goto yy65;
   414 yy67:
   352 yy67:
   498 	yych = *++YYCURSOR;
   436 	yych = *++YYCURSOR;
   499 	if(yych == 'i') goto yy81;
   437 	if(yych == 'i') goto yy81;
   500 	goto yy73;
   438 	goto yy73;
   501 yy79:
   439 yy79:
   502 	++YYCURSOR;
   440 	++YYCURSOR;
   503 #line 105 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   504 	{ RET(TOKEN_HASHHASH); }
   441 	{ RET(TOKEN_HASHHASH); }
   505 #line 506 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   506 yy81:
   442 yy81:
   507 	yych = *++YYCURSOR;
   443 	yych = *++YYCURSOR;
   508 	if(yych != 'n') goto yy73;
   444 	if(yych != 'n') goto yy73;
   509 	yych = *++YYCURSOR;
   445 	yych = *++YYCURSOR;
   510 	if(yych != 'e') goto yy73;
   446 	if(yych != 'e') goto yy73;
   511 	++YYCURSOR;
   447 	++YYCURSOR;
   512 #line 134 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   513 	{ RET(TOKEN_PP_LINE); }
   448 	{ RET(TOKEN_PP_LINE); }
   514 #line 515 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   515 yy85:
   449 yy85:
   516 	yych = *++YYCURSOR;
   450 	yych = *++YYCURSOR;
   517 	if(yych != 'f') goto yy73;
   451 	if(yych != 'f') goto yy73;
   518 	yych = *++YYCURSOR;
   452 	yych = *++YYCURSOR;
   519 	if(yych != 'i') goto yy73;
   453 	if(yych != 'i') goto yy73;
   520 	yych = *++YYCURSOR;
   454 	yych = *++YYCURSOR;
   521 	if(yych != 'n') goto yy73;
   455 	if(yych != 'n') goto yy73;
   522 	yych = *++YYCURSOR;
   456 	yych = *++YYCURSOR;
   523 	if(yych != 'e') goto yy73;
   457 	if(yych != 'e') goto yy73;
   524 	++YYCURSOR;
   458 	++YYCURSOR;
   525 #line 135 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   526 	{ RET(TOKEN_PP_DEFINE); }
   459 	{ RET(TOKEN_PP_DEFINE); }
   527 #line 528 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   528 yy91:
   460 yy91:
   529 	yych = *++YYCURSOR;
   461 	yych = *++YYCURSOR;
   530 	if(yych != 'd') goto yy73;
   462 	if(yych != 'd') goto yy73;
   531 	yych = *++YYCURSOR;
   463 	yych = *++YYCURSOR;
   532 	if(yych != 'e') goto yy73;
   464 	if(yych != 'e') goto yy73;
   533 	yych = *++YYCURSOR;
   465 	yych = *++YYCURSOR;
   534 	if(yych != 'f') goto yy73;
   466 	if(yych != 'f') goto yy73;
   535 	++YYCURSOR;
   467 	++YYCURSOR;
   536 #line 136 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   537 	{ RET(TOKEN_PP_UNDEF); }
   468 	{ RET(TOKEN_PP_UNDEF); }
   538 #line 539 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   539 yy96:
   469 yy96:
   540 	yych = *++YYCURSOR;
   470 	yych = *++YYCURSOR;
   541 	if(yych == 'c') goto yy108;
   471 	if(yych == 'c') goto yy108;
   542 	goto yy73;
   472 	goto yy73;
   543 yy97:
   473 yy97:
   544 	yyaccept = 3;
   474 	yyaccept = 3;
   545 	yych = *(YYMARKER = ++YYCURSOR);
   475 	yych = *(YYMARKER = ++YYCURSOR);
   546 	if(yych == 'd') goto yy100;
   476 	if(yych == 'd') goto yy100;
   547 	if(yych == 'n') goto yy99;
   477 	if(yych == 'n') goto yy99;
   548 yy98:
   478 yy98:
   549 #line 137 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   550 	{ RET(TOKEN_PP_IF); }
   479 	{ RET(TOKEN_PP_IF); }
   551 #line 552 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   552 yy99:
   480 yy99:
   553 	yych = *++YYCURSOR;
   481 	yych = *++YYCURSOR;
   554 	if(yych == 'd') goto yy104;
   482 	if(yych == 'd') goto yy104;
   555 	goto yy73;
   483 	goto yy73;
   556 yy100:
   484 yy100:
   557 	yych = *++YYCURSOR;
   485 	yych = *++YYCURSOR;
   558 	if(yych != 'e') goto yy73;
   486 	if(yych != 'e') goto yy73;
   559 	yych = *++YYCURSOR;
   487 	yych = *++YYCURSOR;
   560 	if(yych != 'f') goto yy73;
   488 	if(yych != 'f') goto yy73;
   561 	++YYCURSOR;
   489 	++YYCURSOR;
   562 #line 138 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   563 	{ RET(TOKEN_PP_IFDEF); }
   490 	{ RET(TOKEN_PP_IFDEF); }
   564 #line 565 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   565 yy104:
   491 yy104:
   566 	yych = *++YYCURSOR;
   492 	yych = *++YYCURSOR;
   567 	if(yych != 'e') goto yy73;
   493 	if(yych != 'e') goto yy73;
   568 	yych = *++YYCURSOR;
   494 	yych = *++YYCURSOR;
   569 	if(yych != 'f') goto yy73;
   495 	if(yych != 'f') goto yy73;
   570 	++YYCURSOR;
   496 	++YYCURSOR;
   571 #line 139 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   572 	{ RET(TOKEN_PP_IFNDEF); }
   497 	{ RET(TOKEN_PP_IFNDEF); }
   573 #line 574 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   574 yy108:
   498 yy108:
   575 	yych = *++YYCURSOR;
   499 	yych = *++YYCURSOR;
   576 	if(yych != 'l') goto yy73;
   500 	if(yych != 'l') goto yy73;
   577 	yych = *++YYCURSOR;
   501 	yych = *++YYCURSOR;
   578 	if(yych != 'u') goto yy73;
   502 	if(yych != 'u') goto yy73;
   579 	yych = *++YYCURSOR;
   503 	yych = *++YYCURSOR;
   580 	if(yych != 'd') goto yy73;
   504 	if(yych != 'd') goto yy73;
   581 	yych = *++YYCURSOR;
   505 	yych = *++YYCURSOR;
   582 	if(yych != 'e') goto yy73;
   506 	if(yych != 'e') goto yy73;
   583 	++YYCURSOR;
   507 	++YYCURSOR;
   584 #line 133 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   585 	{ RET(TOKEN_PP_INCLUDE); }
   508 	{ RET(TOKEN_PP_INCLUDE); }
   586 #line 587 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   587 yy114:
   509 yy114:
   588 	yych = *++YYCURSOR;
   510 	yych = *++YYCURSOR;
   589 	if(yych == 'i') goto yy125;
   511 	if(yych == 'i') goto yy125;
   590 	if(yych == 's') goto yy126;
   512 	if(yych == 's') goto yy126;
   591 	goto yy73;
   513 	goto yy73;
   599 	yych = *++YYCURSOR;
   521 	yych = *++YYCURSOR;
   600 	if(yych != 'o') goto yy73;
   522 	if(yych != 'o') goto yy73;
   601 	yych = *++YYCURSOR;
   523 	yych = *++YYCURSOR;
   602 	if(yych != 'r') goto yy73;
   524 	if(yych != 'r') goto yy73;
   603 	++YYCURSOR;
   525 	++YYCURSOR;
   604 #line 143 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   605 	{ RET(TOKEN_PP_ERROR); }
   526 	{ RET(TOKEN_PP_ERROR); }
   606 #line 607 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   607 yy121:
   527 yy121:
   608 	yych = *++YYCURSOR;
   528 	yych = *++YYCURSOR;
   609 	if(yych != 'i') goto yy73;
   529 	if(yych != 'i') goto yy73;
   610 	yych = *++YYCURSOR;
   530 	yych = *++YYCURSOR;
   611 	if(yych != 'f') goto yy73;
   531 	if(yych != 'f') goto yy73;
   612 	++YYCURSOR;
   532 	++YYCURSOR;
   613 #line 142 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   614 	{ RET(TOKEN_PP_ENDIF); }
   533 	{ RET(TOKEN_PP_ENDIF); }
   615 #line 616 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   616 yy125:
   534 yy125:
   617 	yych = *++YYCURSOR;
   535 	yych = *++YYCURSOR;
   618 	if(yych == 'f') goto yy129;
   536 	if(yych == 'f') goto yy129;
   619 	goto yy73;
   537 	goto yy73;
   620 yy126:
   538 yy126:
   621 	yych = *++YYCURSOR;
   539 	yych = *++YYCURSOR;
   622 	if(yych != 'e') goto yy73;
   540 	if(yych != 'e') goto yy73;
   623 	++YYCURSOR;
   541 	++YYCURSOR;
   624 #line 140 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   625 	{ RET(TOKEN_PP_ELSE); }
   542 	{ RET(TOKEN_PP_ELSE); }
   626 #line 627 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   627 yy129:
   543 yy129:
   628 	++YYCURSOR;
   544 	++YYCURSOR;
   629 #line 141 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   630 	{ RET(TOKEN_PP_ELIF); }
   545 	{ RET(TOKEN_PP_ELIF); }
   631 #line 632 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   632 yy131:
   546 yy131:
   633 	++YYCURSOR;
   547 	++YYCURSOR;
   634 #line 104 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   635 	{ RET(TOKEN_NEQ); }
   548 	{ RET(TOKEN_NEQ); }
   636 #line 637 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   637 yy133:
   549 yy133:
   638 	++YYCURSOR;
   550 	++YYCURSOR;
   639 #line 103 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   640 	{ RET(TOKEN_EQL); }
   551 	{ RET(TOKEN_EQL); }
   641 #line 642 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   642 yy135:
   552 yy135:
   643 	++YYCURSOR;
   553 	++YYCURSOR;
   644 #line 100 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   645 	{ RET(TOKEN_OROR); }
   554 	{ RET(TOKEN_OROR); }
   646 #line 647 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   647 yy137:
   555 yy137:
   648 	++YYCURSOR;
   556 	++YYCURSOR;
   649 #line 94 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   650 	{ RET(TOKEN_ORASSIGN); }
   557 	{ RET(TOKEN_ORASSIGN); }
   651 #line 652 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   652 yy139:
   558 yy139:
   653 	++YYCURSOR;
   559 	++YYCURSOR;
   654 #line 99 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   655 	{ RET(TOKEN_ANDAND); }
   560 	{ RET(TOKEN_ANDAND); }
   656 #line 657 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   657 yy141:
   561 yy141:
   658 	++YYCURSOR;
   562 	++YYCURSOR;
   659 #line 93 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   660 	{ RET(TOKEN_ANDASSIGN); }
   563 	{ RET(TOKEN_ANDASSIGN); }
   661 #line 662 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   662 yy143:
   564 yy143:
   663 	++YYCURSOR;
   565 	++YYCURSOR;
   664 #line 92 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   665 	{ RET(TOKEN_XORASSIGN); }
   566 	{ RET(TOKEN_XORASSIGN); }
   666 #line 667 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   667 yy145:
   567 yy145:
   668 	++YYCURSOR;
   568 	++YYCURSOR;
   669 #line 91 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   670 	{ RET(TOKEN_MODASSIGN); }
   569 	{ RET(TOKEN_MODASSIGN); }
   671 #line 672 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   672 yy147:
   570 yy147:
   673 	++YYCURSOR;
   571 	++YYCURSOR;
   674 #line 89 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   675 	{ RET(TOKEN_MULTASSIGN); }
   572 	{ RET(TOKEN_MULTASSIGN); }
   676 #line 677 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   677 yy149:
   573 yy149:
   678 	++YYCURSOR;
   574 	++YYCURSOR;
   679 #line 96 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   680 	{ RET(TOKEN_DECREMENT); }
   575 	{ RET(TOKEN_DECREMENT); }
   681 #line 682 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   682 yy151:
   576 yy151:
   683 	++YYCURSOR;
   577 	++YYCURSOR;
   684 #line 88 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   685 	{ RET(TOKEN_SUBASSIGN); }
   578 	{ RET(TOKEN_SUBASSIGN); }
   686 #line 687 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   687 yy153:
   579 yy153:
   688 	++YYCURSOR;
   580 	++YYCURSOR;
   689 #line 95 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   690 	{ RET(TOKEN_INCREMENT); }
   581 	{ RET(TOKEN_INCREMENT); }
   691 #line 692 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   692 yy155:
   582 yy155:
   693 	++YYCURSOR;
   583 	++YYCURSOR;
   694 #line 87 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   695 	{ RET(TOKEN_ADDASSIGN); }
   584 	{ RET(TOKEN_ADDASSIGN); }
   696 #line 697 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   697 yy157:
   585 yy157:
   698 	++YYCURSOR;
   586 	++YYCURSOR;
   699 #line 101 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   700 	{ RET(TOKEN_LEQ); }
   587 	{ RET(TOKEN_LEQ); }
   701 #line 702 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   702 yy159:
   588 yy159:
   703 	++YYCURSOR;
   589 	++YYCURSOR;
   704 	if((yych = *YYCURSOR) == '=') goto yy161;
   590 	if((yych = *YYCURSOR) == '=') goto yy161;
   705 #line 98 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   706 	{ RET(TOKEN_LSHIFT); }
   591 	{ RET(TOKEN_LSHIFT); }
   707 #line 708 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   708 yy161:
   592 yy161:
   709 	++YYCURSOR;
   593 	++YYCURSOR;
   710 #line 86 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   711 	{ RET(TOKEN_LSHIFTASSIGN); }
   594 	{ RET(TOKEN_LSHIFTASSIGN); }
   712 #line 713 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   713 yy163:
   595 yy163:
   714 	++YYCURSOR;
   596 	++YYCURSOR;
   715 #line 102 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   716 	{ RET(TOKEN_GEQ); }
   597 	{ RET(TOKEN_GEQ); }
   717 #line 718 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   718 yy165:
   598 yy165:
   719 	++YYCURSOR;
   599 	++YYCURSOR;
   720 	if((yych = *YYCURSOR) == '=') goto yy167;
   600 	if((yych = *YYCURSOR) == '=') goto yy167;
   721 #line 97 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   722 	{ RET(TOKEN_RSHIFT); }
   601 	{ RET(TOKEN_RSHIFT); }
   723 #line 724 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   724 yy167:
   602 yy167:
   725 	++YYCURSOR;
   603 	++YYCURSOR;
   726 #line 85 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   727 	{ RET(TOKEN_RSHIFTASSIGN); }
   604 	{ RET(TOKEN_RSHIFTASSIGN); }
   728 #line 729 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   729 yy169:
   605 yy169:
   730 	++YYCURSOR;
   606 	++YYCURSOR;
   731 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   607 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   732 	yych = *YYCURSOR;
   608 	yych = *YYCURSOR;
   733 yy170:
   609 yy170:
   734 	if(yych <= '!') {
   610 	if(yych <= 0x0D) {
   735 		if(yych == 0x0A) goto yy73;
   611 		if(yych == 0x0A) goto yy73;
   736 		goto yy169;
   612 		if(yych <= 0x0C) goto yy169;
   737 	} else {
   613 		goto yy73;
   738 		if(yych <= '"') goto yy172;
   614 	} else {
   739 		if(yych != '\\') goto yy169;
   615 		if(yych <= '"') {
       
   616 			if(yych <= '!') goto yy169;
       
   617 			goto yy172;
       
   618 		} else {
       
   619 			if(yych != '\\') goto yy169;
       
   620 		}
   740 	}
   621 	}
   741 yy171:
   622 yy171:
   742 	++YYCURSOR;
   623 	++YYCURSOR;
   743 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   624 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   744 	yych = *YYCURSOR;
   625 	yych = *YYCURSOR;
   783 			}
   664 			}
   784 		}
   665 		}
   785 	}
   666 	}
   786 yy172:
   667 yy172:
   787 	++YYCURSOR;
   668 	++YYCURSOR;
   788 #line 83 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   789 	{ RET(TOKEN_STRING_LITERAL); }
   669 	{ RET(TOKEN_STRING_LITERAL); }
   790 #line 791 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   791 yy174:
   670 yy174:
   792 	++YYCURSOR;
   671 	++YYCURSOR;
   793 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   672 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   794 	yych = *YYCURSOR;
   673 	yych = *YYCURSOR;
   795 	if(yych <= '@') {
   674 	if(yych <= '@') {
   804 	}
   683 	}
   805 yy175:
   684 yy175:
   806 	++YYCURSOR;
   685 	++YYCURSOR;
   807 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   686 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   808 	yych = *YYCURSOR;
   687 	yych = *YYCURSOR;
   809 	if(yych <= '"') {
   688 	if(yych <= '!') {
   810 		if(yych == 0x0A) goto yy73;
   689 		if(yych <= 0x0A) {
   811 		if(yych <= '!') goto yy169;
   690 			if(yych <= 0x09) goto yy169;
   812 		goto yy172;
   691 			goto yy73;
       
   692 		} else {
       
   693 			if(yych == 0x0D) goto yy73;
       
   694 			goto yy169;
       
   695 		}
   813 	} else {
   696 	} else {
   814 		if(yych <= '7') {
   697 		if(yych <= '7') {
       
   698 			if(yych <= '"') goto yy172;
   815 			if(yych <= '/') goto yy169;
   699 			if(yych <= '/') goto yy169;
   816 			goto yy175;
   700 			goto yy175;
   817 		} else {
   701 		} else {
   818 			if(yych == '\\') goto yy171;
   702 			if(yych == '\\') goto yy171;
   819 			goto yy169;
   703 			goto yy169;
   821 	}
   705 	}
   822 yy177:
   706 yy177:
   823 	++YYCURSOR;
   707 	++YYCURSOR;
   824 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   708 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   825 	yych = *YYCURSOR;
   709 	yych = *YYCURSOR;
   826 	if(yych <= '9') {
   710 	if(yych <= '/') {
   827 		if(yych <= '!') {
   711 		if(yych <= 0x0C) {
   828 			if(yych == 0x0A) goto yy73;
   712 			if(yych == 0x0A) goto yy73;
   829 			goto yy169;
   713 			goto yy169;
   830 		} else {
   714 		} else {
   831 			if(yych <= '"') goto yy172;
   715 			if(yych <= 0x0D) goto yy73;
   832 			if(yych <= '/') goto yy169;
   716 			if(yych == '"') goto yy172;
   833 			goto yy177;
   717 			goto yy169;
   834 		}
   718 		}
   835 	} else {
   719 	} else {
   836 		if(yych <= '[') {
   720 		if(yych <= '[') {
       
   721 			if(yych <= '9') goto yy177;
   837 			if(yych <= '@') goto yy169;
   722 			if(yych <= '@') goto yy169;
   838 			if(yych <= 'F') goto yy177;
   723 			if(yych <= 'F') goto yy177;
   839 			goto yy169;
   724 			goto yy169;
   840 		} else {
   725 		} else {
   841 			if(yych <= '\\') goto yy171;
   726 			if(yych <= '\\') goto yy171;
   865 			if(yych <= 'f') goto yy183;
   750 			if(yych <= 'f') goto yy183;
   866 			if(yych == 'l') goto yy183;
   751 			if(yych == 'l') goto yy183;
   867 		}
   752 		}
   868 	}
   753 	}
   869 yy181:
   754 yy181:
   870 #line 80 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
   871 	{ RET(TOKEN_FLOAT_LITERAL); }
   755 	{ RET(TOKEN_FLOAT_LITERAL); }
   872 #line 873 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
   873 yy182:
   756 yy182:
   874 	yych = *++YYCURSOR;
   757 	yych = *++YYCURSOR;
   875 	if(yych <= ',') {
   758 	if(yych <= ',') {
   876 		if(yych == '+') goto yy184;
   759 		if(yych == '+') goto yy184;
   877 		goto yy73;
   760 		goto yy73;
   913 yy187:
   796 yy187:
   914 	++YYCURSOR;
   797 	++YYCURSOR;
   915 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   798 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   916 	yych = *YYCURSOR;
   799 	yych = *YYCURSOR;
   917 yy188:
   800 yy188:
   918 	if(yych <= '&') {
   801 	if(yych <= 0x0D) {
   919 		if(yych == 0x0A) goto yy73;
   802 		if(yych == 0x0A) goto yy73;
   920 		goto yy187;
   803 		if(yych <= 0x0C) goto yy187;
   921 	} else {
   804 		goto yy73;
   922 		if(yych <= '\'') goto yy190;
   805 	} else {
   923 		if(yych != '\\') goto yy187;
   806 		if(yych <= '\'') {
       
   807 			if(yych <= '&') goto yy187;
       
   808 			goto yy190;
       
   809 		} else {
       
   810 			if(yych != '\\') goto yy187;
       
   811 		}
   924 	}
   812 	}
   925 yy189:
   813 yy189:
   926 	++YYCURSOR;
   814 	++YYCURSOR;
   927 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   815 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   928 	yych = *YYCURSOR;
   816 	yych = *YYCURSOR;
   986 	}
   874 	}
   987 yy192:
   875 yy192:
   988 	++YYCURSOR;
   876 	++YYCURSOR;
   989 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   877 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   990 	yych = *YYCURSOR;
   878 	yych = *YYCURSOR;
   991 	if(yych <= '\'') {
   879 	if(yych <= '&') {
   992 		if(yych == 0x0A) goto yy73;
   880 		if(yych <= 0x0A) {
   993 		if(yych <= '&') goto yy187;
   881 			if(yych <= 0x09) goto yy187;
   994 		goto yy190;
   882 			goto yy73;
       
   883 		} else {
       
   884 			if(yych == 0x0D) goto yy73;
       
   885 			goto yy187;
       
   886 		}
   995 	} else {
   887 	} else {
   996 		if(yych <= '7') {
   888 		if(yych <= '7') {
       
   889 			if(yych <= '\'') goto yy190;
   997 			if(yych <= '/') goto yy187;
   890 			if(yych <= '/') goto yy187;
   998 			goto yy192;
   891 			goto yy192;
   999 		} else {
   892 		} else {
  1000 			if(yych == '\\') goto yy189;
   893 			if(yych == '\\') goto yy189;
  1001 			goto yy187;
   894 			goto yy187;
  1003 	}
   896 	}
  1004 yy194:
   897 yy194:
  1005 	++YYCURSOR;
   898 	++YYCURSOR;
  1006 	if(YYLIMIT == YYCURSOR) YYFILL(1);
   899 	if(YYLIMIT == YYCURSOR) YYFILL(1);
  1007 	yych = *YYCURSOR;
   900 	yych = *YYCURSOR;
  1008 	if(yych <= '9') {
   901 	if(yych <= '/') {
  1009 		if(yych <= '&') {
   902 		if(yych <= 0x0C) {
  1010 			if(yych == 0x0A) goto yy73;
   903 			if(yych == 0x0A) goto yy73;
  1011 			goto yy187;
   904 			goto yy187;
  1012 		} else {
   905 		} else {
  1013 			if(yych <= '\'') goto yy190;
   906 			if(yych <= 0x0D) goto yy73;
  1014 			if(yych <= '/') goto yy187;
   907 			if(yych == '\'') goto yy190;
  1015 			goto yy194;
   908 			goto yy187;
  1016 		}
   909 		}
  1017 	} else {
   910 	} else {
  1018 		if(yych <= '[') {
   911 		if(yych <= '[') {
       
   912 			if(yych <= '9') goto yy194;
  1019 			if(yych <= '@') goto yy187;
   913 			if(yych <= '@') goto yy187;
  1020 			if(yych <= 'F') goto yy194;
   914 			if(yych <= 'F') goto yy194;
  1021 			goto yy187;
   915 			goto yy187;
  1022 		} else {
   916 		} else {
  1023 			if(yych <= '\\') goto yy189;
   917 			if(yych <= '\\') goto yy189;
  1334 			goto yy5;
  1228 			goto yy5;
  1335 		}
  1229 		}
  1336 	}
  1230 	}
  1337 yy226:
  1231 yy226:
  1338 	++YYCURSOR;
  1232 	++YYCURSOR;
  1339 #line 90 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
  1340 	{ RET(TOKEN_DIVASSIGN); }
  1233 	{ RET(TOKEN_DIVASSIGN); }
  1341 #line 1342 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
  1342 yy228:
  1234 yy228:
  1343 	++YYCURSOR;
  1235 	++YYCURSOR;
  1344 #line 71 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
  1345 	{ goto singlelinecomment; }
  1236 	{ goto singlelinecomment; }
  1346 #line 1347 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
  1347 yy230:
  1237 yy230:
  1348 	++YYCURSOR;
  1238 	++YYCURSOR;
  1349 #line 70 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
  1350 	{ goto multilinecomment; }
  1239 	{ goto multilinecomment; }
  1351 #line 1352 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
  1352 }
  1240 }
  1353 #line 148 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
  1354 
  1241 
  1355 
  1242 
  1356 multilinecomment:
  1243 multilinecomment:
  1357     if (YYLIMIT == YYCURSOR)
  1244     if (YYLIMIT == YYCURSOR)
  1358         RET(TOKEN_PP_INCOMPLETE_COMMENT);
  1245         RET(TOKEN_PP_INCOMPLETE_COMMENT);
       
  1246     matchptr = cursor;
  1359 // The "*\/" is just to avoid screwing up text editor syntax highlighting.
  1247 // The "*\/" is just to avoid screwing up text editor syntax highlighting.
  1360 
  1248 
  1361 #line 1362 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
  1362 {
  1249 {
  1363 	YYCTYPE yych;
  1250 	YYCTYPE yych;
  1364 	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
  1251 	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
  1365 	yych = *YYCURSOR;
  1252 	yych = *YYCURSOR;
  1366 	if(yych <= 0x0C) {
  1253 	if(yych <= 0x0C) {
  1371 		if(yych != '*') goto yy239;
  1258 		if(yych != '*') goto yy239;
  1372 	}
  1259 	}
  1373 	++YYCURSOR;
  1260 	++YYCURSOR;
  1374 	if((yych = *YYCURSOR) == '/') goto yy241;
  1261 	if((yych = *YYCURSOR) == '/') goto yy241;
  1375 yy235:
  1262 yy235:
  1376 #line 166 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
  1377 	{ goto multilinecomment; }
  1263 	{ goto multilinecomment; }
  1378 #line 1379 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
  1379 yy236:
  1264 yy236:
  1380 	++YYCURSOR;
  1265 	++YYCURSOR;
  1381 yy237:
  1266 yy237:
  1382 #line 160 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
  1383 	{
  1267 	{
  1384                         s->line++;
  1268                         s->line++;
  1385                         token = cursor-1;
  1269                         token = matchptr;
  1386                         saw_newline = 1;
  1270                         saw_newline = 1;
  1387                         goto multilinecomment;
  1271                         goto multilinecomment;
  1388                     }
  1272                     }
  1389 #line 1390 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
  1390 yy238:
  1273 yy238:
  1391 	yych = *++YYCURSOR;
  1274 	yych = *++YYCURSOR;
  1392 	if(yych == 0x0A) goto yy240;
  1275 	if(yych == 0x0A) goto yy240;
  1393 	goto yy237;
  1276 	goto yy237;
  1394 yy239:
  1277 yy239:
  1397 yy240:
  1280 yy240:
  1398 	yych = *++YYCURSOR;
  1281 	yych = *++YYCURSOR;
  1399 	goto yy237;
  1282 	goto yy237;
  1400 yy241:
  1283 yy241:
  1401 	++YYCURSOR;
  1284 	++YYCURSOR;
  1402 #line 155 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
  1403 	{
  1285 	{
  1404                         if (saw_newline)
  1286                         if (saw_newline)
  1405                             RET('\n');
  1287                             RET('\n');
  1406                         goto scanner_loop;
  1288                         goto scanner_loop;
  1407                     }
  1289                     }
  1408 #line 1409 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
  1409 }
  1290 }
  1410 #line 167 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
  1411 
  1291 
  1412 
  1292 
  1413 singlelinecomment:
  1293 singlelinecomment:
  1414     if (YYLIMIT == YYCURSOR)
  1294     if (YYLIMIT == YYCURSOR)
  1415         RET(TOKEN_EOI);
  1295         RET(TOKEN_EOI);
  1416 
  1296     matchptr = cursor;
  1417 #line 1418 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
  1297 
  1418 {
  1298 {
  1419 	YYCTYPE yych;
  1299 	YYCTYPE yych;
  1420 	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
  1300 	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
  1421 	yych = *YYCURSOR;
  1301 	yych = *YYCURSOR;
  1422 	if(yych == 0x0A) goto yy245;
  1302 	if(yych == 0x0A) goto yy245;
  1423 	if(yych == 0x0D) goto yy247;
  1303 	if(yych == 0x0D) goto yy247;
  1424 	goto yy248;
  1304 	goto yy248;
  1425 yy245:
  1305 yy245:
  1426 	++YYCURSOR;
  1306 	++YYCURSOR;
  1427 yy246:
  1307 yy246:
  1428 #line 173 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
  1308 	{ s->line++; token = matchptr; RET('\n'); }
  1429 	{ s->line++; token = cursor-1; RET('\n'); }
       
  1430 #line 1431 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
  1431 yy247:
  1309 yy247:
  1432 	yych = *++YYCURSOR;
  1310 	yych = *++YYCURSOR;
  1433 	if(yych == 0x0A) goto yy250;
  1311 	if(yych == 0x0A) goto yy250;
  1434 	goto yy246;
  1312 	goto yy246;
  1435 yy248:
  1313 yy248:
  1436 	++YYCURSOR;
  1314 	++YYCURSOR;
  1437 #line 174 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
  1438 	{ goto singlelinecomment; }
  1315 	{ goto singlelinecomment; }
  1439 #line 1440 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
  1440 yy250:
  1316 yy250:
  1441 	++YYCURSOR;
  1317 	++YYCURSOR;
  1442 	yych = *YYCURSOR;
  1318 	yych = *YYCURSOR;
  1443 	goto yy246;
  1319 	goto yy246;
  1444 }
  1320 }
  1445 #line 175 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
  1321 
  1446 
  1322 
  1447 
       
  1448 // !!! FIXME
       
  1449 /*
       
  1450 bad_chars:
  1323 bad_chars:
  1451     if (YYLIMIT == YYCURSOR)
  1324     if (YYLIMIT == YYCURSOR)
  1452         RET(TOKEN_BAD_TOKEN);
  1325         RET(TOKEN_PP_BAD_CHARS);
  1453 */
  1326 
  1454 
  1327 
  1455 
       
  1456 #line 1457 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
  1457 {
  1328 {
  1458 	YYCTYPE yych;
  1329 	YYCTYPE yych;
  1459 	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
  1330 	if(YYLIMIT == YYCURSOR) YYFILL(1);
  1460 	yych = *YYCURSOR;
  1331 	yych = *YYCURSOR;
  1461 	if(yych <= 0x0C) {
  1332 	if(yych <= '#') {
  1462 		if(yych <= 0x08) goto yy258;
  1333 		if(yych <= 0x1F) {
  1463 		if(yych != 0x0A) goto yy256;
  1334 			if(yych <= 0x08) goto yy255;
  1464 	} else {
  1335 			if(yych >= 0x0E) goto yy255;
  1465 		if(yych <= 0x0D) goto yy255;
  1336 		} else {
  1466 		if(yych == ' ') goto yy256;
  1337 			if(yych == '"') goto yy255;
  1467 		goto yy258;
  1338 		}
  1468 	}
  1339 	} else {
  1469 	++YYCURSOR;
  1340 		if(yych <= '@') {
  1470 yy254:
  1341 			if(yych <= '$') goto yy255;
  1471 #line 185 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
  1342 			if(yych >= '@') goto yy255;
  1472 	{ s->line++; goto scanner_loop; }
  1343 		} else {
  1473 #line 1474 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
  1344 			if(yych == '`') goto yy255;
       
  1345 			if(yych >= 0x7F) goto yy255;
       
  1346 		}
       
  1347 	}
       
  1348 	++YYCURSOR;
       
  1349 	{ cursor--; RET(TOKEN_PP_BAD_CHARS); }
  1474 yy255:
  1350 yy255:
  1475 	yych = *++YYCURSOR;
  1351 	++YYCURSOR;
  1476 	if(yych == 0x0A) goto yy262;
  1352 	{ goto bad_chars; }
  1477 	goto yy254;
       
  1478 yy256:
       
  1479 	++YYCURSOR;
       
  1480 	yych = *YYCURSOR;
       
  1481 	goto yy261;
       
  1482 yy257:
       
  1483 #line 186 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
  1484 	{ goto scanner_loop; }
       
  1485 #line 1486 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
  1486 yy258:
       
  1487 	++YYCURSOR;
       
  1488 #line 187 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
  1489 	{ goto singlelinecomment; }
       
  1490 #line 1491 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
       
  1491 yy260:
       
  1492 	++YYCURSOR;
       
  1493 	if(YYLIMIT == YYCURSOR) YYFILL(1);
       
  1494 	yych = *YYCURSOR;
       
  1495 yy261:
       
  1496 	if(yych <= 0x0A) {
       
  1497 		if(yych == 0x09) goto yy260;
       
  1498 		goto yy257;
       
  1499 	} else {
       
  1500 		if(yych <= 0x0C) goto yy260;
       
  1501 		if(yych == ' ') goto yy260;
       
  1502 		goto yy257;
       
  1503 	}
       
  1504 yy262:
       
  1505 	++YYCURSOR;
       
  1506 	yych = *YYCURSOR;
       
  1507 	goto yy254;
       
  1508 }
  1353 }
  1509 #line 188 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
       
  1510 
  1354 
  1511 
  1355 
  1512     assert(0 && "Shouldn't hit this code");
  1356     assert(0 && "Shouldn't hit this code");
  1513     RET(TOKEN_UNKNOWN);
  1357     RET(TOKEN_UNKNOWN);
  1514 } // preprocessor_internal_lexer
  1358 } // preprocessor_internal_lexer