Updated re2c-generated lexer code.
authorRyan C. Gordon <icculus@icculus.org>
Thu, 12 Feb 2009 02:42:52 -0500
changeset 580 a7b038eb688c
parent 579 e408bfc631f5
child 581 53ef64f219a2
Updated re2c-generated lexer code.
mojoshader_lexer.c
--- a/mojoshader_lexer.c	Thu Feb 12 02:42:10 2009 -0500
+++ b/mojoshader_lexer.c	Thu Feb 12 02:42:52 2009 -0500
@@ -1,4 +1,5 @@
-/* Generated by re2c 0.13.5 on Mon Feb  9 17:52:01 2009 */
+/* Generated by re2c 0.12.1 on Thu Feb 12 01:23:03 2009 */
+#line 1 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 /**
  * MojoShader; generate shader programs from bytecode of compiled
  *  Direct3D shaders.
@@ -25,7 +26,7 @@
 
 typedef unsigned char uchar;
 
-#define RET(t) { update_state(s, cursor, token); return t; }
+#define RET(t) do { update_state(s, cursor, token); return t; } while (0)
 #define YYCTYPE uchar
 #define YYCURSOR cursor
 #define YYLIMIT limit
@@ -44,6 +45,7 @@
     const uchar *cursor = (const uchar *) s->source;
     const uchar *token;
     const uchar *limit = cursor + s->bytes_left;
+    int saw_newline = 0;
 
 scanner_loop:
     token = cursor;
@@ -51,22 +53,24 @@
     if (YYLIMIT == YYCURSOR)
         RET(TOKEN_EOI);
 
+#line 67 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 
 
 
+#line 61 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 {
 	YYCTYPE yych;
 	unsigned int yyaccept = 0;
 
-	if ((YYLIMIT - YYCURSOR) < 8) YYFILL(8);
+	if((YYLIMIT - YYCURSOR) < 8) YYFILL(8);
 	yych = *YYCURSOR;
-	switch (yych) {
-	case '\t':
-	case '\v':
-	case '\f':
+	switch(yych) {
+	case 0x09:
+	case 0x0B:
+	case 0x0C:
 	case ' ':	goto yy62;
-	case '\n':	goto yy64;
-	case '\r':	goto yy66;
+	case 0x0A:	goto yy64;
+	case 0x0D:	goto yy66;
 	case '!':	goto yy24;
 	case '"':	goto yy13;
 	case '#':	goto yy26;
@@ -162,39 +166,45 @@
 	}
 yy2:
 	++YYCURSOR;
-	if ((yych = *YYCURSOR) == '*') goto yy209;
-	if (yych == '/') goto yy207;
+	if((yych = *YYCURSOR) == '*') goto yy209;
+	if(yych == '/') goto yy207;
+#line 107 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('/'); }
+#line 174 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy4:
 	++YYCURSOR;
 	yych = *YYCURSOR;
 	goto yy206;
 yy5:
+#line 73 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_IDENTIFIER); }
+#line 182 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy6:
 	yyaccept = 0;
 	yych = *(YYMARKER = ++YYCURSOR);
-	if (yych <= 'X') {
-		if (yych <= 'T') {
-			if (yych == 'L') goto yy181;
+	if(yych <= 'X') {
+		if(yych <= 'T') {
+			if(yych == 'L') goto yy181;
 			goto yy197;
 		} else {
-			if (yych <= 'U') goto yy181;
-			if (yych <= 'W') goto yy197;
+			if(yych <= 'U') goto yy181;
+			if(yych <= 'W') goto yy197;
 			goto yy198;
 		}
 	} else {
-		if (yych <= 't') {
-			if (yych == 'l') goto yy181;
+		if(yych <= 't') {
+			if(yych == 'l') goto yy181;
 			goto yy197;
 		} else {
-			if (yych <= 'u') goto yy181;
-			if (yych == 'x') goto yy198;
+			if(yych <= 'u') goto yy181;
+			if(yych == 'x') goto yy198;
 			goto yy197;
 		}
 	}
 yy7:
+#line 77 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_INT_LITERAL); }
+#line 208 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy8:
 	yyaccept = 0;
 	yych = *(YYMARKER = ++YYCURSOR);
@@ -202,137 +212,193 @@
 yy9:
 	yyaccept = 1;
 	yych = *(YYMARKER = ++YYCURSOR);
-	if (yych != '\n') goto yy169;
+	if(yych != 0x0A) goto yy169;
 yy10:
+#line 136 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ printf("bad char\n"); goto scanner_loop; }
+#line 220 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy11:
 	yyaccept = 2;
 	yych = *(YYMARKER = ++YYCURSOR);
-	if (yych == '.') goto yy157;
-	if (yych <= '/') goto yy12;
-	if (yych <= '9') goto yy158;
+	if(yych == '.') goto yy157;
+	if(yych <= '/') goto yy12;
+	if(yych <= '9') goto yy158;
 yy12:
+#line 99 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('.'); }
+#line 230 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy13:
 	yyaccept = 1;
 	yych = *(YYMARKER = ++YYCURSOR);
-	if (yych == '\n') goto yy10;
+	if(yych == 0x0A) goto yy10;
 	goto yy148;
 yy14:
 	++YYCURSOR;
-	if ((yych = *YYCURSOR) <= '<') goto yy15;
-	if (yych <= '=') goto yy143;
-	if (yych <= '>') goto yy145;
+	if((yych = *YYCURSOR) <= '<') goto yy15;
+	if(yych <= '=') goto yy143;
+	if(yych <= '>') goto yy145;
 yy15:
+#line 110 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('>'); }
+#line 244 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy16:
 	++YYCURSOR;
-	if ((yych = *YYCURSOR) <= ';') goto yy17;
-	if (yych <= '<') goto yy141;
-	if (yych <= '=') goto yy139;
+	if((yych = *YYCURSOR) <= ';') goto yy17;
+	if(yych <= '<') goto yy141;
+	if(yych <= '=') goto yy139;
 yy17:
+#line 109 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('<'); }
+#line 253 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy18:
 	++YYCURSOR;
-	if ((yych = *YYCURSOR) == '&') goto yy137;
+	if((yych = *YYCURSOR) == '&') goto yy137;
+#line 101 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('&'); }
+#line 259 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy20:
 	++YYCURSOR;
-	if ((yych = *YYCURSOR) == '|') goto yy135;
+	if((yych = *YYCURSOR) == '|') goto yy135;
+#line 112 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('|'); }
+#line 265 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy22:
 	++YYCURSOR;
-	if ((yych = *YYCURSOR) == '=') goto yy133;
+	if((yych = *YYCURSOR) == '=') goto yy133;
+#line 117 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('='); }
+#line 271 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy24:
 	++YYCURSOR;
-	if ((yych = *YYCURSOR) == '=') goto yy131;
+	if((yych = *YYCURSOR) == '=') goto yy131;
+#line 102 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('!'); }
+#line 277 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy26:
 	yyaccept = 3;
 	yych = *(YYMARKER = ++YYCURSOR);
-	if (yych <= 'c') {
-		if (yych <= 0x1F) {
-			if (yych == '\t') goto yy72;
+	if(yych <= 'c') {
+		if(yych <= 0x1F) {
+			if(yych == 0x09) goto yy72;
 		} else {
-			if (yych <= ' ') goto yy72;
-			if (yych == '#') goto yy79;
+			if(yych <= ' ') goto yy72;
+			if(yych == '#') goto yy79;
 		}
 	} else {
-		if (yych <= 'k') {
-			if (yych <= 'e') goto yy72;
-			if (yych == 'i') goto yy72;
+		if(yych <= 'k') {
+			if(yych <= 'e') goto yy72;
+			if(yych == 'i') goto yy72;
 		} else {
-			if (yych <= 'l') goto yy72;
-			if (yych == 'u') goto yy72;
+			if(yych <= 'l') goto yy72;
+			if(yych == 'u') goto yy72;
 		}
 	}
 yy27:
+#line 120 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('#'); }
+#line 300 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy28:
 	++YYCURSOR;
+#line 95 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('('); }
+#line 305 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy30:
 	++YYCURSOR;
+#line 96 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(')'); }
+#line 310 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy32:
 	++YYCURSOR;
+#line 97 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('['); }
+#line 315 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy34:
 	++YYCURSOR;
+#line 98 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(']'); }
+#line 320 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy36:
 	++YYCURSOR;
+#line 100 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(','); }
+#line 325 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy38:
 	++YYCURSOR;
+#line 103 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('~'); }
+#line 330 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy40:
 	++YYCURSOR;
+#line 104 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('-'); }
+#line 335 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy42:
 	++YYCURSOR;
+#line 105 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('+'); }
+#line 340 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy44:
 	++YYCURSOR;
+#line 106 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('*'); }
+#line 345 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy46:
 	++YYCURSOR;
+#line 108 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('%'); }
+#line 350 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy48:
 	++YYCURSOR;
+#line 111 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('^'); }
+#line 355 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy50:
 	++YYCURSOR;
+#line 113 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(':'); }
+#line 360 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy52:
 	++YYCURSOR;
+#line 114 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(';'); }
+#line 365 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy54:
 	++YYCURSOR;
+#line 115 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('{'); }
+#line 370 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy56:
 	++YYCURSOR;
+#line 116 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('}'); }
+#line 375 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy58:
 	++YYCURSOR;
+#line 118 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('?'); }
+#line 380 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy60:
 	++YYCURSOR;
+#line 119 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET('\\'); }
+#line 385 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy62:
 	++YYCURSOR;
 	yych = *YYCURSOR;
 	goto yy70;
 yy63:
+#line 134 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ goto scanner_loop; }
+#line 393 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy64:
 	++YYCURSOR;
 yy65:
-	{ s->line++; goto scanner_loop; }
+#line 135 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
+	{ s->line++; RET('\n'); }
+#line 399 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy66:
 	yych = *++YYCURSOR;
-	if (yych == '\n') goto yy68;
+	if(yych == 0x0A) goto yy68;
 	goto yy65;
 yy67:
 	yych = *++YYCURSOR;
@@ -342,44 +408,44 @@
 	goto yy65;
 yy69:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
 yy70:
-	if (yych <= '\n') {
-		if (yych == '\t') goto yy69;
+	if(yych <= 0x0A) {
+		if(yych == 0x09) goto yy69;
 		goto yy63;
 	} else {
-		if (yych <= '\f') goto yy69;
-		if (yych == ' ') goto yy69;
+		if(yych <= 0x0C) goto yy69;
+		if(yych == ' ') goto yy69;
 		goto yy63;
 	}
 yy71:
 	++YYCURSOR;
-	if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
+	if((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
 	yych = *YYCURSOR;
 yy72:
-	if (yych <= 'e') {
-		if (yych <= 0x1F) {
-			if (yych == '\t') goto yy71;
+	if(yych <= 'e') {
+		if(yych <= 0x1F) {
+			if(yych == 0x09) goto yy71;
 		} else {
-			if (yych <= ' ') goto yy71;
-			if (yych <= 'c') goto yy73;
-			if (yych <= 'd') goto yy77;
+			if(yych <= ' ') goto yy71;
+			if(yych <= 'c') goto yy73;
+			if(yych <= 'd') goto yy77;
 			goto yy74;
 		}
 	} else {
-		if (yych <= 'k') {
-			if (yych == 'i') goto yy75;
+		if(yych <= 'k') {
+			if(yych == 'i') goto yy75;
 		} else {
-			if (yych <= 'l') goto yy78;
-			if (yych == 'u') goto yy76;
+			if(yych <= 'l') goto yy78;
+			if(yych == 'u') goto yy76;
 		}
 	}
 yy73:
 	YYCURSOR = YYMARKER;
-	if (yyaccept <= 2) {
-		if (yyaccept <= 1) {
-			if (yyaccept <= 0) {
+	if(yyaccept <= 2) {
+		if(yyaccept <= 1) {
+			if(yyaccept <= 0) {
 				goto yy7;
 			} else {
 				goto yy10;
@@ -388,8 +454,8 @@
 			goto yy12;
 		}
 	} else {
-		if (yyaccept <= 4) {
-			if (yyaccept <= 3) {
+		if(yyaccept <= 4) {
+			if(yyaccept <= 3) {
 				goto yy27;
 			} else {
 				goto yy98;
@@ -400,315 +466,359 @@
 	}
 yy74:
 	yych = *++YYCURSOR;
-	if (yych <= 'm') {
-		if (yych == 'l') goto yy114;
+	if(yych <= 'm') {
+		if(yych == 'l') goto yy114;
 		goto yy73;
 	} else {
-		if (yych <= 'n') goto yy115;
-		if (yych == 'r') goto yy116;
+		if(yych <= 'n') goto yy115;
+		if(yych == 'r') goto yy116;
 		goto yy73;
 	}
 yy75:
 	yych = *++YYCURSOR;
-	if (yych == 'f') goto yy97;
-	if (yych == 'n') goto yy96;
+	if(yych == 'f') goto yy97;
+	if(yych == 'n') goto yy96;
 	goto yy73;
 yy76:
 	yych = *++YYCURSOR;
-	if (yych == 'n') goto yy91;
+	if(yych == 'n') goto yy91;
 	goto yy73;
 yy77:
 	yych = *++YYCURSOR;
-	if (yych == 'e') goto yy85;
+	if(yych == 'e') goto yy85;
 	goto yy73;
 yy78:
 	yych = *++YYCURSOR;
-	if (yych == 'i') goto yy81;
+	if(yych == 'i') goto yy81;
 	goto yy73;
 yy79:
 	++YYCURSOR;
+#line 94 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_HASHHASH); }
+#line 499 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy81:
 	yych = *++YYCURSOR;
-	if (yych != 'n') goto yy73;
+	if(yych != 'n') goto yy73;
 	yych = *++YYCURSOR;
-	if (yych != 'e') goto yy73;
+	if(yych != 'e') goto yy73;
 	++YYCURSOR;
+#line 123 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_PP_LINE); }
+#line 508 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy85:
 	yych = *++YYCURSOR;
-	if (yych != 'f') goto yy73;
+	if(yych != 'f') goto yy73;
 	yych = *++YYCURSOR;
-	if (yych != 'i') goto yy73;
+	if(yych != 'i') goto yy73;
+	yych = *++YYCURSOR;
+	if(yych != 'n') goto yy73;
 	yych = *++YYCURSOR;
-	if (yych != 'n') goto yy73;
-	yych = *++YYCURSOR;
-	if (yych != 'e') goto yy73;
+	if(yych != 'e') goto yy73;
 	++YYCURSOR;
+#line 124 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_PP_DEFINE); }
+#line 521 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy91:
 	yych = *++YYCURSOR;
-	if (yych != 'd') goto yy73;
+	if(yych != 'd') goto yy73;
 	yych = *++YYCURSOR;
-	if (yych != 'e') goto yy73;
+	if(yych != 'e') goto yy73;
 	yych = *++YYCURSOR;
-	if (yych != 'f') goto yy73;
+	if(yych != 'f') goto yy73;
 	++YYCURSOR;
+#line 125 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_PP_UNDEF); }
+#line 532 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy96:
 	yych = *++YYCURSOR;
-	if (yych == 'c') goto yy108;
+	if(yych == 'c') goto yy108;
 	goto yy73;
 yy97:
 	yyaccept = 4;
 	yych = *(YYMARKER = ++YYCURSOR);
-	if (yych == 'd') goto yy100;
-	if (yych == 'n') goto yy99;
+	if(yych == 'd') goto yy100;
+	if(yych == 'n') goto yy99;
 yy98:
+#line 126 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_PP_IF); }
+#line 545 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy99:
 	yych = *++YYCURSOR;
-	if (yych == 'd') goto yy104;
+	if(yych == 'd') goto yy104;
 	goto yy73;
 yy100:
 	yych = *++YYCURSOR;
-	if (yych != 'e') goto yy73;
+	if(yych != 'e') goto yy73;
 	yych = *++YYCURSOR;
-	if (yych != 'f') goto yy73;
+	if(yych != 'f') goto yy73;
 	++YYCURSOR;
+#line 127 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_PP_IFDEF); }
+#line 558 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy104:
 	yych = *++YYCURSOR;
-	if (yych != 'e') goto yy73;
+	if(yych != 'e') goto yy73;
 	yych = *++YYCURSOR;
-	if (yych != 'f') goto yy73;
+	if(yych != 'f') goto yy73;
 	++YYCURSOR;
+#line 128 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_PP_IFNDEF); }
+#line 567 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy108:
 	yych = *++YYCURSOR;
-	if (yych != 'l') goto yy73;
+	if(yych != 'l') goto yy73;
 	yych = *++YYCURSOR;
-	if (yych != 'u') goto yy73;
+	if(yych != 'u') goto yy73;
+	yych = *++YYCURSOR;
+	if(yych != 'd') goto yy73;
 	yych = *++YYCURSOR;
-	if (yych != 'd') goto yy73;
-	yych = *++YYCURSOR;
-	if (yych != 'e') goto yy73;
+	if(yych != 'e') goto yy73;
 	++YYCURSOR;
+#line 122 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_PP_INCLUDE); }
+#line 580 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy114:
 	yych = *++YYCURSOR;
-	if (yych == 'i') goto yy125;
-	if (yych == 's') goto yy126;
+	if(yych == 'i') goto yy125;
+	if(yych == 's') goto yy126;
 	goto yy73;
 yy115:
 	yych = *++YYCURSOR;
-	if (yych == 'd') goto yy121;
+	if(yych == 'd') goto yy121;
 	goto yy73;
 yy116:
 	yych = *++YYCURSOR;
-	if (yych != 'r') goto yy73;
+	if(yych != 'r') goto yy73;
 	yych = *++YYCURSOR;
-	if (yych != 'o') goto yy73;
+	if(yych != 'o') goto yy73;
 	yych = *++YYCURSOR;
-	if (yych != 'r') goto yy73;
+	if(yych != 'r') goto yy73;
 	++YYCURSOR;
+#line 132 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_PP_ERROR); }
+#line 600 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy121:
 	yych = *++YYCURSOR;
-	if (yych != 'i') goto yy73;
+	if(yych != 'i') goto yy73;
 	yych = *++YYCURSOR;
-	if (yych != 'f') goto yy73;
+	if(yych != 'f') goto yy73;
 	++YYCURSOR;
+#line 131 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_PP_ENDIF); }
+#line 609 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy125:
 	yych = *++YYCURSOR;
-	if (yych == 'f') goto yy129;
+	if(yych == 'f') goto yy129;
 	goto yy73;
 yy126:
 	yych = *++YYCURSOR;
-	if (yych != 'e') goto yy73;
+	if(yych != 'e') goto yy73;
 	++YYCURSOR;
+#line 129 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_PP_ELSE); }
+#line 620 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy129:
 	++YYCURSOR;
+#line 130 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_PP_ELIF); }
+#line 625 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy131:
 	++YYCURSOR;
+#line 93 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_NEQ); }
+#line 630 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy133:
 	++YYCURSOR;
+#line 92 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_EQL); }
+#line 635 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy135:
 	++YYCURSOR;
+#line 89 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_OROR); }
+#line 640 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy137:
 	++YYCURSOR;
+#line 88 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_ANDAND); }
+#line 645 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy139:
 	++YYCURSOR;
+#line 90 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_LEQ); }
+#line 650 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy141:
 	++YYCURSOR;
+#line 87 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_LSHIFT); }
+#line 655 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy143:
 	++YYCURSOR;
+#line 91 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_GEQ); }
+#line 660 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy145:
 	++YYCURSOR;
+#line 86 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_RSHIFT); }
+#line 665 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy147:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
 yy148:
-	if (yych <= '!') {
-		if (yych == '\n') goto yy73;
+	if(yych <= '!') {
+		if(yych == 0x0A) goto yy73;
 		goto yy147;
 	} else {
-		if (yych <= '"') goto yy150;
-		if (yych != '\\') goto yy147;
+		if(yych <= '"') goto yy150;
+		if(yych != '\\') goto yy147;
 	}
 yy149:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= 'b') {
-		if (yych <= '7') {
-			if (yych <= '&') {
-				if (yych == '"') goto yy147;
+	if(yych <= 'b') {
+		if(yych <= '7') {
+			if(yych <= '&') {
+				if(yych == '"') goto yy147;
 				goto yy73;
 			} else {
-				if (yych <= '\'') goto yy147;
-				if (yych <= '/') goto yy73;
+				if(yych <= '\'') goto yy147;
+				if(yych <= '/') goto yy73;
 				goto yy153;
 			}
 		} else {
-			if (yych <= '[') {
-				if (yych == '?') goto yy147;
+			if(yych <= '[') {
+				if(yych == '?') goto yy147;
 				goto yy73;
 			} else {
-				if (yych <= '\\') goto yy147;
-				if (yych <= '`') goto yy73;
+				if(yych <= '\\') goto yy147;
+				if(yych <= '`') goto yy73;
 				goto yy147;
 			}
 		}
 	} else {
-		if (yych <= 'r') {
-			if (yych <= 'm') {
-				if (yych == 'f') goto yy147;
+		if(yych <= 'r') {
+			if(yych <= 'm') {
+				if(yych == 'f') goto yy147;
 				goto yy73;
 			} else {
-				if (yych <= 'n') goto yy147;
-				if (yych <= 'q') goto yy73;
+				if(yych <= 'n') goto yy147;
+				if(yych <= 'q') goto yy73;
 				goto yy147;
 			}
 		} else {
-			if (yych <= 'u') {
-				if (yych == 't') goto yy147;
+			if(yych <= 'u') {
+				if(yych == 't') goto yy147;
 				goto yy73;
 			} else {
-				if (yych <= 'v') goto yy147;
-				if (yych == 'x') goto yy152;
+				if(yych <= 'v') goto yy147;
+				if(yych == 'x') goto yy152;
 				goto yy73;
 			}
 		}
 	}
 yy150:
 	++YYCURSOR;
+#line 83 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_STRING_LITERAL); }
+#line 727 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy152:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy73;
-		if (yych <= '9') goto yy155;
+	if(yych <= '@') {
+		if(yych <= '/') goto yy73;
+		if(yych <= '9') goto yy155;
 		goto yy73;
 	} else {
-		if (yych <= 'F') goto yy155;
-		if (yych <= '`') goto yy73;
-		if (yych <= 'f') goto yy155;
+		if(yych <= 'F') goto yy155;
+		if(yych <= '`') goto yy73;
+		if(yych <= 'f') goto yy155;
 		goto yy73;
 	}
 yy153:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= '"') {
-		if (yych == '\n') goto yy73;
-		if (yych <= '!') goto yy147;
+	if(yych <= '"') {
+		if(yych == 0x0A) goto yy73;
+		if(yych <= '!') goto yy147;
 		goto yy150;
 	} else {
-		if (yych <= '7') {
-			if (yych <= '/') goto yy147;
+		if(yych <= '7') {
+			if(yych <= '/') goto yy147;
 			goto yy153;
 		} else {
-			if (yych == '\\') goto yy149;
+			if(yych == '\\') goto yy149;
 			goto yy147;
 		}
 	}
 yy155:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= '9') {
-		if (yych <= '!') {
-			if (yych == '\n') goto yy73;
+	if(yych <= '9') {
+		if(yych <= '!') {
+			if(yych == 0x0A) goto yy73;
 			goto yy147;
 		} else {
-			if (yych <= '"') goto yy150;
-			if (yych <= '/') goto yy147;
+			if(yych <= '"') goto yy150;
+			if(yych <= '/') goto yy147;
 			goto yy155;
 		}
 	} else {
-		if (yych <= '[') {
-			if (yych <= '@') goto yy147;
-			if (yych <= 'F') goto yy155;
+		if(yych <= '[') {
+			if(yych <= '@') goto yy147;
+			if(yych <= 'F') goto yy155;
 			goto yy147;
 		} else {
-			if (yych <= '\\') goto yy149;
-			if (yych <= '`') goto yy147;
-			if (yych <= 'f') goto yy155;
+			if(yych <= '\\') goto yy149;
+			if(yych <= '`') goto yy147;
+			if(yych <= 'f') goto yy155;
 			goto yy147;
 		}
 	}
 yy157:
 	yych = *++YYCURSOR;
-	if (yych == '.') goto yy166;
+	if(yych == '.') goto yy166;
 	goto yy73;
 yy158:
 	yyaccept = 5;
 	YYMARKER = ++YYCURSOR;
-	if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+	if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
 	yych = *YYCURSOR;
-	if (yych <= 'K') {
-		if (yych <= 'D') {
-			if (yych <= '/') goto yy160;
-			if (yych <= '9') goto yy158;
+	if(yych <= 'K') {
+		if(yych <= 'D') {
+			if(yych <= '/') goto yy160;
+			if(yych <= '9') goto yy158;
 		} else {
-			if (yych <= 'E') goto yy161;
-			if (yych <= 'F') goto yy162;
+			if(yych <= 'E') goto yy161;
+			if(yych <= 'F') goto yy162;
 		}
 	} else {
-		if (yych <= 'e') {
-			if (yych <= 'L') goto yy162;
-			if (yych >= 'e') goto yy161;
+		if(yych <= 'e') {
+			if(yych <= 'L') goto yy162;
+			if(yych >= 'e') goto yy161;
 		} else {
-			if (yych <= 'f') goto yy162;
-			if (yych == 'l') goto yy162;
+			if(yych <= 'f') goto yy162;
+			if(yych == 'l') goto yy162;
 		}
 	}
 yy160:
+#line 80 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_FLOAT_LITERAL); }
+#line 813 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy161:
 	yych = *++YYCURSOR;
-	if (yych <= ',') {
-		if (yych == '+') goto yy163;
+	if(yych <= ',') {
+		if(yych == '+') goto yy163;
 		goto yy73;
 	} else {
-		if (yych <= '-') goto yy163;
-		if (yych <= '/') goto yy73;
-		if (yych <= '9') goto yy164;
+		if(yych <= '-') goto yy163;
+		if(yych <= '/') goto yy73;
+		if(yych <= '9') goto yy164;
 		goto yy73;
 	}
 yy162:
@@ -716,86 +826,88 @@
 	goto yy160;
 yy163:
 	yych = *++YYCURSOR;
-	if (yych <= '/') goto yy73;
-	if (yych >= ':') goto yy73;
+	if(yych <= '/') goto yy73;
+	if(yych >= ':') goto yy73;
 yy164:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= 'K') {
-		if (yych <= '9') {
-			if (yych <= '/') goto yy160;
+	if(yych <= 'K') {
+		if(yych <= '9') {
+			if(yych <= '/') goto yy160;
 			goto yy164;
 		} else {
-			if (yych == 'F') goto yy162;
+			if(yych == 'F') goto yy162;
 			goto yy160;
 		}
 	} else {
-		if (yych <= 'f') {
-			if (yych <= 'L') goto yy162;
-			if (yych <= 'e') goto yy160;
+		if(yych <= 'f') {
+			if(yych <= 'L') goto yy162;
+			if(yych <= 'e') goto yy160;
 			goto yy162;
 		} else {
-			if (yych == 'l') goto yy162;
+			if(yych == 'l') goto yy162;
 			goto yy160;
 		}
 	}
 yy166:
 	++YYCURSOR;
+#line 85 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ RET(TOKEN_ELLIPSIS); }
+#line 858 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy168:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
 yy169:
-	if (yych <= '&') {
-		if (yych == '\n') goto yy73;
+	if(yych <= '&') {
+		if(yych == 0x0A) goto yy73;
 		goto yy168;
 	} else {
-		if (yych <= '\'') goto yy171;
-		if (yych != '\\') goto yy168;
+		if(yych <= '\'') goto yy171;
+		if(yych != '\\') goto yy168;
 	}
 yy170:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= 'b') {
-		if (yych <= '7') {
-			if (yych <= '&') {
-				if (yych == '"') goto yy168;
+	if(yych <= 'b') {
+		if(yych <= '7') {
+			if(yych <= '&') {
+				if(yych == '"') goto yy168;
 				goto yy73;
 			} else {
-				if (yych <= '\'') goto yy168;
-				if (yych <= '/') goto yy73;
+				if(yych <= '\'') goto yy168;
+				if(yych <= '/') goto yy73;
 				goto yy173;
 			}
 		} else {
-			if (yych <= '[') {
-				if (yych == '?') goto yy168;
+			if(yych <= '[') {
+				if(yych == '?') goto yy168;
 				goto yy73;
 			} else {
-				if (yych <= '\\') goto yy168;
-				if (yych <= '`') goto yy73;
+				if(yych <= '\\') goto yy168;
+				if(yych <= '`') goto yy73;
 				goto yy168;
 			}
 		}
 	} else {
-		if (yych <= 'r') {
-			if (yych <= 'm') {
-				if (yych == 'f') goto yy168;
+		if(yych <= 'r') {
+			if(yych <= 'm') {
+				if(yych == 'f') goto yy168;
 				goto yy73;
 			} else {
-				if (yych <= 'n') goto yy168;
-				if (yych <= 'q') goto yy73;
+				if(yych <= 'n') goto yy168;
+				if(yych <= 'q') goto yy73;
 				goto yy168;
 			}
 		} else {
-			if (yych <= 'u') {
-				if (yych == 't') goto yy168;
+			if(yych <= 'u') {
+				if(yych == 't') goto yy168;
 				goto yy73;
 			} else {
-				if (yych <= 'v') goto yy168;
-				if (yych == 'x') goto yy172;
+				if(yych <= 'v') goto yy168;
+				if(yych == 'x') goto yy172;
 				goto yy73;
 			}
 		}
@@ -805,375 +917,380 @@
 	goto yy7;
 yy172:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy73;
-		if (yych <= '9') goto yy175;
+	if(yych <= '@') {
+		if(yych <= '/') goto yy73;
+		if(yych <= '9') goto yy175;
 		goto yy73;
 	} else {
-		if (yych <= 'F') goto yy175;
-		if (yych <= '`') goto yy73;
-		if (yych <= 'f') goto yy175;
+		if(yych <= 'F') goto yy175;
+		if(yych <= '`') goto yy73;
+		if(yych <= 'f') goto yy175;
 		goto yy73;
 	}
 yy173:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= '\'') {
-		if (yych == '\n') goto yy73;
-		if (yych <= '&') goto yy168;
+	if(yych <= '\'') {
+		if(yych == 0x0A) goto yy73;
+		if(yych <= '&') goto yy168;
 		goto yy171;
 	} else {
-		if (yych <= '7') {
-			if (yych <= '/') goto yy168;
+		if(yych <= '7') {
+			if(yych <= '/') goto yy168;
 			goto yy173;
 		} else {
-			if (yych == '\\') goto yy170;
+			if(yych == '\\') goto yy170;
 			goto yy168;
 		}
 	}
 yy175:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= '9') {
-		if (yych <= '&') {
-			if (yych == '\n') goto yy73;
+	if(yych <= '9') {
+		if(yych <= '&') {
+			if(yych == 0x0A) goto yy73;
 			goto yy168;
 		} else {
-			if (yych <= '\'') goto yy171;
-			if (yych <= '/') goto yy168;
+			if(yych <= '\'') goto yy171;
+			if(yych <= '/') goto yy168;
 			goto yy175;
 		}
 	} else {
-		if (yych <= '[') {
-			if (yych <= '@') goto yy168;
-			if (yych <= 'F') goto yy175;
+		if(yych <= '[') {
+			if(yych <= '@') goto yy168;
+			if(yych <= 'F') goto yy175;
 			goto yy168;
 		} else {
-			if (yych <= '\\') goto yy170;
-			if (yych <= '`') goto yy168;
-			if (yych <= 'f') goto yy175;
+			if(yych <= '\\') goto yy170;
+			if(yych <= '`') goto yy168;
+			if(yych <= 'f') goto yy175;
 			goto yy168;
 		}
 	}
 yy177:
 	yyaccept = 5;
 	yych = *(YYMARKER = ++YYCURSOR);
-	if (yych == 'E') goto yy188;
-	if (yych == 'e') goto yy188;
+	if(yych == 'E') goto yy188;
+	if(yych == 'e') goto yy188;
 	goto yy187;
 yy178:
 	yyaccept = 0;
 	YYMARKER = ++YYCURSOR;
-	if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+	if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
 	yych = *YYCURSOR;
 yy179:
-	if (yych <= 'L') {
-		if (yych <= '9') {
-			if (yych == '.') goto yy177;
-			if (yych <= '/') goto yy7;
+	if(yych <= 'L') {
+		if(yych <= '9') {
+			if(yych == '.') goto yy177;
+			if(yych <= '/') goto yy7;
 			goto yy178;
 		} else {
-			if (yych == 'E') goto yy180;
-			if (yych <= 'K') goto yy7;
+			if(yych == 'E') goto yy180;
+			if(yych <= 'K') goto yy7;
 			goto yy181;
 		}
 	} else {
-		if (yych <= 'e') {
-			if (yych == 'U') goto yy181;
-			if (yych <= 'd') goto yy7;
+		if(yych <= 'e') {
+			if(yych == 'U') goto yy181;
+			if(yych <= 'd') goto yy7;
 		} else {
-			if (yych <= 'l') {
-				if (yych <= 'k') goto yy7;
+			if(yych <= 'l') {
+				if(yych <= 'k') goto yy7;
 				goto yy181;
 			} else {
-				if (yych == 'u') goto yy181;
+				if(yych == 'u') goto yy181;
 				goto yy7;
 			}
 		}
 	}
 yy180:
 	yych = *++YYCURSOR;
-	if (yych <= ',') {
-		if (yych == '+') goto yy183;
+	if(yych <= ',') {
+		if(yych == '+') goto yy183;
 		goto yy73;
 	} else {
-		if (yych <= '-') goto yy183;
-		if (yych <= '/') goto yy73;
-		if (yych <= '9') goto yy184;
+		if(yych <= '-') goto yy183;
+		if(yych <= '/') goto yy73;
+		if(yych <= '9') goto yy184;
 		goto yy73;
 	}
 yy181:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= 'U') {
-		if (yych == 'L') goto yy181;
-		if (yych <= 'T') goto yy7;
+	if(yych <= 'U') {
+		if(yych == 'L') goto yy181;
+		if(yych <= 'T') goto yy7;
 		goto yy181;
 	} else {
-		if (yych <= 'l') {
-			if (yych <= 'k') goto yy7;
+		if(yych <= 'l') {
+			if(yych <= 'k') goto yy7;
 			goto yy181;
 		} else {
-			if (yych == 'u') goto yy181;
+			if(yych == 'u') goto yy181;
 			goto yy7;
 		}
 	}
 yy183:
 	yych = *++YYCURSOR;
-	if (yych <= '/') goto yy73;
-	if (yych >= ':') goto yy73;
+	if(yych <= '/') goto yy73;
+	if(yych >= ':') goto yy73;
 yy184:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= 'K') {
-		if (yych <= '9') {
-			if (yych <= '/') goto yy160;
+	if(yych <= 'K') {
+		if(yych <= '9') {
+			if(yych <= '/') goto yy160;
 			goto yy184;
 		} else {
-			if (yych == 'F') goto yy162;
+			if(yych == 'F') goto yy162;
 			goto yy160;
 		}
 	} else {
-		if (yych <= 'f') {
-			if (yych <= 'L') goto yy162;
-			if (yych <= 'e') goto yy160;
+		if(yych <= 'f') {
+			if(yych <= 'L') goto yy162;
+			if(yych <= 'e') goto yy160;
 			goto yy162;
 		} else {
-			if (yych == 'l') goto yy162;
+			if(yych == 'l') goto yy162;
 			goto yy160;
 		}
 	}
 yy186:
 	yyaccept = 5;
 	YYMARKER = ++YYCURSOR;
-	if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+	if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
 	yych = *YYCURSOR;
 yy187:
-	if (yych <= 'K') {
-		if (yych <= 'D') {
-			if (yych <= '/') goto yy160;
-			if (yych <= '9') goto yy186;
+	if(yych <= 'K') {
+		if(yych <= 'D') {
+			if(yych <= '/') goto yy160;
+			if(yych <= '9') goto yy186;
 			goto yy160;
 		} else {
-			if (yych <= 'E') goto yy192;
-			if (yych <= 'F') goto yy162;
+			if(yych <= 'E') goto yy192;
+			if(yych <= 'F') goto yy162;
 			goto yy160;
 		}
 	} else {
-		if (yych <= 'e') {
-			if (yych <= 'L') goto yy162;
-			if (yych <= 'd') goto yy160;
+		if(yych <= 'e') {
+			if(yych <= 'L') goto yy162;
+			if(yych <= 'd') goto yy160;
 			goto yy192;
 		} else {
-			if (yych <= 'f') goto yy162;
-			if (yych == 'l') goto yy162;
+			if(yych <= 'f') goto yy162;
+			if(yych == 'l') goto yy162;
 			goto yy160;
 		}
 	}
 yy188:
 	yych = *++YYCURSOR;
-	if (yych <= ',') {
-		if (yych != '+') goto yy73;
+	if(yych <= ',') {
+		if(yych != '+') goto yy73;
 	} else {
-		if (yych <= '-') goto yy189;
-		if (yych <= '/') goto yy73;
-		if (yych <= '9') goto yy190;
+		if(yych <= '-') goto yy189;
+		if(yych <= '/') goto yy73;
+		if(yych <= '9') goto yy190;
 		goto yy73;
 	}
 yy189:
 	yych = *++YYCURSOR;
-	if (yych <= '/') goto yy73;
-	if (yych >= ':') goto yy73;
+	if(yych <= '/') goto yy73;
+	if(yych >= ':') goto yy73;
 yy190:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= 'K') {
-		if (yych <= '9') {
-			if (yych <= '/') goto yy160;
+	if(yych <= 'K') {
+		if(yych <= '9') {
+			if(yych <= '/') goto yy160;
 			goto yy190;
 		} else {
-			if (yych == 'F') goto yy162;
+			if(yych == 'F') goto yy162;
 			goto yy160;
 		}
 	} else {
-		if (yych <= 'f') {
-			if (yych <= 'L') goto yy162;
-			if (yych <= 'e') goto yy160;
+		if(yych <= 'f') {
+			if(yych <= 'L') goto yy162;
+			if(yych <= 'e') goto yy160;
 			goto yy162;
 		} else {
-			if (yych == 'l') goto yy162;
+			if(yych == 'l') goto yy162;
 			goto yy160;
 		}
 	}
 yy192:
 	yych = *++YYCURSOR;
-	if (yych <= ',') {
-		if (yych != '+') goto yy73;
+	if(yych <= ',') {
+		if(yych != '+') goto yy73;
 	} else {
-		if (yych <= '-') goto yy193;
-		if (yych <= '/') goto yy73;
-		if (yych <= '9') goto yy194;
+		if(yych <= '-') goto yy193;
+		if(yych <= '/') goto yy73;
+		if(yych <= '9') goto yy194;
 		goto yy73;
 	}
 yy193:
 	yych = *++YYCURSOR;
-	if (yych <= '/') goto yy73;
-	if (yych >= ':') goto yy73;
+	if(yych <= '/') goto yy73;
+	if(yych >= ':') goto yy73;
 yy194:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= 'K') {
-		if (yych <= '9') {
-			if (yych <= '/') goto yy160;
+	if(yych <= 'K') {
+		if(yych <= '9') {
+			if(yych <= '/') goto yy160;
 			goto yy194;
 		} else {
-			if (yych == 'F') goto yy162;
+			if(yych == 'F') goto yy162;
 			goto yy160;
 		}
 	} else {
-		if (yych <= 'f') {
-			if (yych <= 'L') goto yy162;
-			if (yych <= 'e') goto yy160;
+		if(yych <= 'f') {
+			if(yych <= 'L') goto yy162;
+			if(yych <= 'e') goto yy160;
 			goto yy162;
 		} else {
-			if (yych == 'l') goto yy162;
+			if(yych == 'l') goto yy162;
 			goto yy160;
 		}
 	}
 yy196:
 	yyaccept = 0;
 	YYMARKER = ++YYCURSOR;
-	if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+	if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
 	yych = *YYCURSOR;
 yy197:
-	if (yych <= 'L') {
-		if (yych <= '9') {
-			if (yych == '.') goto yy177;
-			if (yych <= '/') goto yy7;
+	if(yych <= 'L') {
+		if(yych <= '9') {
+			if(yych == '.') goto yy177;
+			if(yych <= '/') goto yy7;
 			goto yy196;
 		} else {
-			if (yych == 'E') goto yy180;
-			if (yych <= 'K') goto yy7;
+			if(yych == 'E') goto yy180;
+			if(yych <= 'K') goto yy7;
 			goto yy203;
 		}
 	} else {
-		if (yych <= 'e') {
-			if (yych == 'U') goto yy203;
-			if (yych <= 'd') goto yy7;
+		if(yych <= 'e') {
+			if(yych == 'U') goto yy203;
+			if(yych <= 'd') goto yy7;
 			goto yy180;
 		} else {
-			if (yych <= 'l') {
-				if (yych <= 'k') goto yy7;
+			if(yych <= 'l') {
+				if(yych <= 'k') goto yy7;
 				goto yy203;
 			} else {
-				if (yych == 'u') goto yy203;
+				if(yych == 'u') goto yy203;
 				goto yy7;
 			}
 		}
 	}
 yy198:
 	yych = *++YYCURSOR;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy73;
-		if (yych >= ':') goto yy73;
+	if(yych <= '@') {
+		if(yych <= '/') goto yy73;
+		if(yych >= ':') goto yy73;
 	} else {
-		if (yych <= 'F') goto yy199;
-		if (yych <= '`') goto yy73;
-		if (yych >= 'g') goto yy73;
+		if(yych <= 'F') goto yy199;
+		if(yych <= '`') goto yy73;
+		if(yych >= 'g') goto yy73;
 	}
 yy199:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= 'T') {
-		if (yych <= '@') {
-			if (yych <= '/') goto yy7;
-			if (yych <= '9') goto yy199;
+	if(yych <= 'T') {
+		if(yych <= '@') {
+			if(yych <= '/') goto yy7;
+			if(yych <= '9') goto yy199;
 			goto yy7;
 		} else {
-			if (yych <= 'F') goto yy199;
-			if (yych != 'L') goto yy7;
+			if(yych <= 'F') goto yy199;
+			if(yych != 'L') goto yy7;
 		}
 	} else {
-		if (yych <= 'k') {
-			if (yych <= 'U') goto yy201;
-			if (yych <= '`') goto yy7;
-			if (yych <= 'f') goto yy199;
+		if(yych <= 'k') {
+			if(yych <= 'U') goto yy201;
+			if(yych <= '`') goto yy7;
+			if(yych <= 'f') goto yy199;
 			goto yy7;
 		} else {
-			if (yych <= 'l') goto yy201;
-			if (yych != 'u') goto yy7;
+			if(yych <= 'l') goto yy201;
+			if(yych != 'u') goto yy7;
 		}
 	}
 yy201:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= 'U') {
-		if (yych == 'L') goto yy201;
-		if (yych <= 'T') goto yy7;
+	if(yych <= 'U') {
+		if(yych == 'L') goto yy201;
+		if(yych <= 'T') goto yy7;
 		goto yy201;
 	} else {
-		if (yych <= 'l') {
-			if (yych <= 'k') goto yy7;
+		if(yych <= 'l') {
+			if(yych <= 'k') goto yy7;
 			goto yy201;
 		} else {
-			if (yych == 'u') goto yy201;
+			if(yych == 'u') goto yy201;
 			goto yy7;
 		}
 	}
 yy203:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
-	if (yych <= 'U') {
-		if (yych == 'L') goto yy203;
-		if (yych <= 'T') goto yy7;
+	if(yych <= 'U') {
+		if(yych == 'L') goto yy203;
+		if(yych <= 'T') goto yy7;
 		goto yy203;
 	} else {
-		if (yych <= 'l') {
-			if (yych <= 'k') goto yy7;
+		if(yych <= 'l') {
+			if(yych <= 'k') goto yy7;
 			goto yy203;
 		} else {
-			if (yych == 'u') goto yy203;
+			if(yych == 'u') goto yy203;
 			goto yy7;
 		}
 	}
 yy205:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
 yy206:
-	if (yych <= 'Z') {
-		if (yych <= '/') goto yy5;
-		if (yych <= '9') goto yy205;
-		if (yych <= '@') goto yy5;
+	if(yych <= 'Z') {
+		if(yych <= '/') goto yy5;
+		if(yych <= '9') goto yy205;
+		if(yych <= '@') goto yy5;
 		goto yy205;
 	} else {
-		if (yych <= '_') {
-			if (yych <= '^') goto yy5;
+		if(yych <= '_') {
+			if(yych <= '^') goto yy5;
 			goto yy205;
 		} else {
-			if (yych <= '`') goto yy5;
-			if (yych <= 'z') goto yy205;
+			if(yych <= '`') goto yy5;
+			if(yych <= 'z') goto yy205;
 			goto yy5;
 		}
 	}
 yy207:
 	++YYCURSOR;
+#line 71 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ goto singlelinecomment; }
+#line 1287 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy209:
 	++YYCURSOR;
+#line 70 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ goto multilinecomment; }
+#line 1292 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 }
+#line 137 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 
 
 multilinecomment:
@@ -1181,28 +1298,38 @@
         RET(TOKEN_PP_INCOMPLETE_COMMENT);
 // The "*\/" is just to avoid screwing up text editor syntax highlighting.
 
+#line 1302 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 {
 	YYCTYPE yych;
-	if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
 	yych = *YYCURSOR;
-	if (yych <= '\f') {
-		if (yych == '\n') goto yy215;
+	if(yych <= 0x0C) {
+		if(yych == 0x0A) goto yy215;
 		goto yy218;
 	} else {
-		if (yych <= '\r') goto yy217;
-		if (yych != '*') goto yy218;
+		if(yych <= 0x0D) goto yy217;
+		if(yych != '*') goto yy218;
 	}
 	++YYCURSOR;
-	if ((yych = *YYCURSOR) == '/') goto yy220;
+	if((yych = *YYCURSOR) == '/') goto yy220;
 yy214:
+#line 155 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ goto multilinecomment; }
+#line 1319 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy215:
 	++YYCURSOR;
 yy216:
-	{ s->line++; goto multilinecomment; }
+#line 149 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
+	{
+                        s->line++;
+                        token = cursor-1;
+                        saw_newline = 1;
+                        goto multilinecomment;
+                    }
+#line 1330 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy217:
 	yych = *++YYCURSOR;
-	if (yych == '\n') goto yy219;
+	if(yych == 0x0A) goto yy219;
 	goto yy216;
 yy218:
 	yych = *++YYCURSOR;
@@ -1212,37 +1339,50 @@
 	goto yy216;
 yy220:
 	++YYCURSOR;
-	{ goto scanner_loop; }
+#line 144 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
+	{
+                        if (saw_newline)
+                            RET('\n');
+                        goto scanner_loop;
+                    }
+#line 1349 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 }
+#line 156 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 
 
 singlelinecomment:
     if (YYLIMIT == YYCURSOR)
         RET(TOKEN_EOI);
 
+#line 1358 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 {
 	YYCTYPE yych;
-	if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
 	yych = *YYCURSOR;
-	if (yych == '\n') goto yy224;
-	if (yych == '\r') goto yy226;
+	if(yych == 0x0A) goto yy224;
+	if(yych == 0x0D) goto yy226;
 	goto yy227;
 yy224:
 	++YYCURSOR;
 yy225:
-	{ s->line++; goto scanner_loop; }
+#line 162 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
+	{ s->line++; token = cursor-1; RET('\n'); }
+#line 1371 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy226:
 	yych = *++YYCURSOR;
-	if (yych == '\n') goto yy229;
+	if(yych == 0x0A) goto yy229;
 	goto yy225;
 yy227:
 	++YYCURSOR;
+#line 163 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ goto singlelinecomment; }
+#line 1380 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy229:
 	++YYCURSOR;
 	yych = *YYCURSOR;
 	goto yy225;
 }
+#line 164 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 
 
 // !!! FIXME
@@ -1253,45 +1393,52 @@
 */
 
 
+#line 1397 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 {
 	YYCTYPE yych;
-	if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+	if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
 	yych = *YYCURSOR;
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy237;
-		if (yych != '\n') goto yy235;
+	if(yych <= 0x0C) {
+		if(yych <= 0x08) goto yy237;
+		if(yych != 0x0A) goto yy235;
 	} else {
-		if (yych <= '\r') goto yy234;
-		if (yych == ' ') goto yy235;
+		if(yych <= 0x0D) goto yy234;
+		if(yych == ' ') goto yy235;
 		goto yy237;
 	}
 	++YYCURSOR;
 yy233:
+#line 174 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ s->line++; goto scanner_loop; }
+#line 1414 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy234:
 	yych = *++YYCURSOR;
-	if (yych == '\n') goto yy241;
+	if(yych == 0x0A) goto yy241;
 	goto yy233;
 yy235:
 	++YYCURSOR;
 	yych = *YYCURSOR;
 	goto yy240;
 yy236:
+#line 175 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ goto scanner_loop; }
+#line 1426 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy237:
 	++YYCURSOR;
+#line 176 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 	{ goto singlelinecomment; }
+#line 1431 "/home/icculus/projects/mojoshader/mojoshader_lexer.c"
 yy239:
 	++YYCURSOR;
-	if (YYLIMIT <= YYCURSOR) YYFILL(1);
+	if(YYLIMIT == YYCURSOR) YYFILL(1);
 	yych = *YYCURSOR;
 yy240:
-	if (yych <= '\n') {
-		if (yych == '\t') goto yy239;
+	if(yych <= 0x0A) {
+		if(yych == 0x09) goto yy239;
 		goto yy236;
 	} else {
-		if (yych <= '\f') goto yy239;
-		if (yych == ' ') goto yy239;
+		if(yych <= 0x0C) goto yy239;
+		if(yych == ' ') goto yy239;
 		goto yy236;
 	}
 yy241:
@@ -1299,6 +1446,7 @@
 	yych = *YYCURSOR;
 	goto yy233;
 }
+#line 177 "/home/icculus/projects/mojoshader/mojoshader_lexer.re"
 
 
     assert(0 && "Shouldn't hit this code");