diff options
Diffstat (limited to 'Externals/mojoshader/1067/mojoshader_lexer.c')
| -rw-r--r-- | Externals/mojoshader/1067/mojoshader_lexer.c | 1504 |
1 files changed, 0 insertions, 1504 deletions
diff --git a/Externals/mojoshader/1067/mojoshader_lexer.c b/Externals/mojoshader/1067/mojoshader_lexer.c deleted file mode 100644 index 53361788..00000000 --- a/Externals/mojoshader/1067/mojoshader_lexer.c +++ /dev/null @@ -1,1504 +0,0 @@ -/* Generated by re2c 0.13.5 */ -/** - * 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; - -#define YYMAXFILL 8 -#define RET(t) return update_state(s, eoi, cursor, token, (Token) t) -#define YYCTYPE uchar -#define YYCURSOR cursor -#define YYLIMIT limit -#define YYMARKER s->lexer_marker -#define YYFILL(n) { if ((n) == 1) { cursor = sentinel; limit = cursor + YYMAXFILL; eoi = 1; } } - -static uchar sentinel[YYMAXFILL]; - -static Token update_state(IncludeState *s, int eoi, const uchar *cur, - const uchar *tok, const Token val) -{ - if (eoi) - { - s->bytes_left = 0; - s->source = (const char *) s->source_base + s->orig_length; - if ( (tok >= sentinel) && (tok < (sentinel+YYMAXFILL)) ) - s->token = s->source; - else - s->token = (const char *) tok; - } // if - else - { - s->bytes_left -= (unsigned int) (cur - ((const uchar *) s->source)); - s->source = (const char *) cur; - s->token = (const char *) tok; - } // else - s->tokenlen = (unsigned int) (s->source - s->token); - s->tokenval = val; - return val; -} // update_state - -Token preprocessor_lexer(IncludeState *s) -{ - const uchar *cursor = (const uchar *) s->source; - const uchar *token = cursor; - const uchar *matchptr; - const uchar *limit = cursor + s->bytes_left; - int eoi = 0; - int saw_newline = 0; - - - - // preprocessor directives are only valid at start of line. - if (s->tokenval == ((Token) '\n')) - goto ppdirective; // may jump back to scanner_loop. - -scanner_loop: - if (YYLIMIT == YYCURSOR) YYFILL(1); - token = cursor; - - -{ - YYCTYPE yych; - unsigned int yyaccept = 0; - - if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); - yych = *YYCURSOR; - switch (yych) { - case 0x00: goto yy61; - case '\t': - case '\v': - case '\f': - case ' ': goto yy63; - case '\n': goto yy65; - case '\r': goto yy67; - case '!': goto yy35; - case '"': goto yy14; - case '#': goto yy37; - case '%': goto yy25; - case '&': goto yy29; - case '\'': goto yy11; - case '(': goto yy39; - case ')': goto yy41; - case '*': goto yy23; - case '+': goto yy19; - case ',': goto yy47; - case '-': goto yy21; - case '.': goto yy12; - case '/': goto yy4; - case '0': goto yy8; - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy10; - case ':': goto yy51; - case ';': goto yy59; - case '<': goto yy17; - case '=': goto yy33; - case '>': goto yy15; - case '?': goto yy57; - 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 yy6; - case '[': goto yy43; - case '\\': goto yy2; - case ']': goto yy45; - case '^': goto yy27; - case '{': goto yy53; - case '|': goto yy31; - case '}': goto yy55; - case '~': goto yy49; - default: goto yy68; - } -yy2: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x08) goto yy3; - if (yych <= '\r') goto yy177; - if (yych == ' ') goto yy177; -yy3: - { goto bad_chars; } -yy4: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '.') { - if (yych == '*') goto yy174; - } else { - if (yych <= '/') goto yy172; - if (yych == '=') goto yy170; - } - { RET('/'); } -yy6: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy169; -yy7: - { RET(TOKEN_IDENTIFIER); } -yy8: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'X') { - if (yych <= 'T') { - if (yych == 'L') goto yy144; - goto yy160; - } else { - if (yych <= 'U') goto yy144; - if (yych <= 'W') goto yy160; - goto yy161; - } - } else { - if (yych <= 't') { - if (yych == 'l') goto yy144; - goto yy160; - } else { - if (yych <= 'u') goto yy144; - if (yych == 'x') goto yy161; - goto yy160; - } - } -yy9: - { RET(TOKEN_INT_LITERAL); } -yy10: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - goto yy142; -yy11: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '\n') goto yy3; - if (yych == '\r') goto yy3; - goto yy132; -yy12: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '/') goto yy13; - if (yych <= '9') goto yy123; -yy13: - { RET('.'); } -yy14: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '\n') goto yy3; - if (yych == '\r') goto yy3; - goto yy113; -yy15: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '<') goto yy16; - if (yych <= '=') goto yy106; - if (yych <= '>') goto yy108; -yy16: - { RET('>'); } -yy17: - ++YYCURSOR; - if ((yych = *YYCURSOR) <= ';') goto yy18; - if (yych <= '<') goto yy102; - if (yych <= '=') goto yy100; -yy18: - { RET('<'); } -yy19: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '+') goto yy96; - if (yych == '=') goto yy98; - { RET('+'); } -yy21: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '-') goto yy92; - if (yych == '=') goto yy94; - { RET('-'); } -yy23: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy90; - { RET('*'); } -yy25: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy88; - { RET('%'); } -yy27: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy86; - { RET('^'); } -yy29: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '&') goto yy82; - if (yych == '=') goto yy84; - { RET('&'); } -yy31: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy80; - if (yych == '|') goto yy78; - { RET('|'); } -yy33: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy76; - { RET('='); } -yy35: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy74; - { RET('!'); } -yy37: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '#') goto yy72; - { RET(TOKEN_HASH); } -yy39: - ++YYCURSOR; - { RET('('); } -yy41: - ++YYCURSOR; - { RET(')'); } -yy43: - ++YYCURSOR; - { RET('['); } -yy45: - ++YYCURSOR; - { RET(']'); } -yy47: - ++YYCURSOR; - { RET(','); } -yy49: - ++YYCURSOR; - { RET('~'); } -yy51: - ++YYCURSOR; - { RET(':'); } -yy53: - ++YYCURSOR; - { RET('{'); } -yy55: - ++YYCURSOR; - { RET('}'); } -yy57: - ++YYCURSOR; - { RET('?'); } -yy59: - ++YYCURSOR; - { if (s->asm_comments) goto singlelinecomment; RET(';'); } -yy61: - ++YYCURSOR; - { if (eoi) { RET(TOKEN_EOI); } goto bad_chars; } -yy63: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy71; -yy64: - { if (s->report_whitespace) RET(' '); goto scanner_loop; } -yy65: - ++YYCURSOR; -yy66: - { s->line++; RET('\n'); } -yy67: - yych = *++YYCURSOR; - if (yych == '\n') goto yy69; - goto yy66; -yy68: - yych = *++YYCURSOR; - goto yy3; -yy69: - yych = *++YYCURSOR; - goto yy66; -yy70: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy71: - if (yych <= '\n') { - if (yych == '\t') goto yy70; - goto yy64; - } else { - if (yych <= '\f') goto yy70; - if (yych == ' ') goto yy70; - goto yy64; - } -yy72: - ++YYCURSOR; - { RET(TOKEN_HASHHASH); } -yy74: - ++YYCURSOR; - { RET(TOKEN_NEQ); } -yy76: - ++YYCURSOR; - { RET(TOKEN_EQL); } -yy78: - ++YYCURSOR; - { RET(TOKEN_OROR); } -yy80: - ++YYCURSOR; - { RET(TOKEN_ORASSIGN); } -yy82: - ++YYCURSOR; - { RET(TOKEN_ANDAND); } -yy84: - ++YYCURSOR; - { RET(TOKEN_ANDASSIGN); } -yy86: - ++YYCURSOR; - { RET(TOKEN_XORASSIGN); } -yy88: - ++YYCURSOR; - { RET(TOKEN_MODASSIGN); } -yy90: - ++YYCURSOR; - { RET(TOKEN_MULTASSIGN); } -yy92: - ++YYCURSOR; - { RET(TOKEN_DECREMENT); } -yy94: - ++YYCURSOR; - { RET(TOKEN_SUBASSIGN); } -yy96: - ++YYCURSOR; - { RET(TOKEN_INCREMENT); } -yy98: - ++YYCURSOR; - { RET(TOKEN_ADDASSIGN); } -yy100: - ++YYCURSOR; - { RET(TOKEN_LEQ); } -yy102: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy104; - { RET(TOKEN_LSHIFT); } -yy104: - ++YYCURSOR; - { RET(TOKEN_LSHIFTASSIGN); } -yy106: - ++YYCURSOR; - { RET(TOKEN_GEQ); } -yy108: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '=') goto yy110; - { RET(TOKEN_RSHIFT); } -yy110: - ++YYCURSOR; - { RET(TOKEN_RSHIFTASSIGN); } -yy112: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy113: - if (yych <= '\r') { - if (yych == '\n') goto yy114; - if (yych <= '\f') goto yy112; - } else { - if (yych <= '"') { - if (yych <= '!') goto yy112; - goto yy116; - } else { - if (yych == '\\') goto yy115; - goto yy112; - } - } -yy114: - YYCURSOR = YYMARKER; - if (yyaccept <= 1) { - if (yyaccept <= 0) { - goto yy3; - } else { - goto yy9; - } - } else { - goto yy125; - } -yy115: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'b') { - if (yych <= '7') { - if (yych <= '&') { - if (yych == '"') goto yy112; - goto yy114; - } else { - if (yych <= '\'') goto yy112; - if (yych <= '/') goto yy114; - goto yy119; - } - } else { - if (yych <= '[') { - if (yych == '?') goto yy112; - goto yy114; - } else { - if (yych <= '\\') goto yy112; - if (yych <= '`') goto yy114; - goto yy112; - } - } - } else { - if (yych <= 'r') { - if (yych <= 'm') { - if (yych == 'f') goto yy112; - goto yy114; - } else { - if (yych <= 'n') goto yy112; - if (yych <= 'q') goto yy114; - goto yy112; - } - } else { - if (yych <= 'u') { - if (yych == 't') goto yy112; - goto yy114; - } else { - if (yych <= 'v') goto yy112; - if (yych == 'x') goto yy118; - goto yy114; - } - } - } -yy116: - ++YYCURSOR; - { RET(TOKEN_STRING_LITERAL); } -yy118: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy114; - if (yych <= '9') goto yy121; - goto yy114; - } else { - if (yych <= 'F') goto yy121; - if (yych <= '`') goto yy114; - if (yych <= 'f') goto yy121; - goto yy114; - } -yy119: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= '!') { - if (yych <= '\n') { - if (yych <= '\t') goto yy112; - goto yy114; - } else { - if (yych == '\r') goto yy114; - goto yy112; - } - } else { - if (yych <= '7') { - if (yych <= '"') goto yy116; - if (yych <= '/') goto yy112; - goto yy119; - } else { - if (yych == '\\') goto yy115; - goto yy112; - } - } -yy121: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= '/') { - if (yych <= '\f') { - if (yych == '\n') goto yy114; - goto yy112; - } else { - if (yych <= '\r') goto yy114; - if (yych == '"') goto yy116; - goto yy112; - } - } else { - if (yych <= '[') { - if (yych <= '9') goto yy121; - if (yych <= '@') goto yy112; - if (yych <= 'F') goto yy121; - goto yy112; - } else { - if (yych <= '\\') goto yy115; - if (yych <= '`') goto yy112; - if (yych <= 'f') goto yy121; - goto yy112; - } - } -yy123: - yyaccept = 2; - YYMARKER = ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); - yych = *YYCURSOR; - if (yych <= 'G') { - if (yych <= 'D') { - if (yych <= '/') goto yy125; - if (yych <= '9') goto yy123; - } else { - if (yych <= 'E') goto yy126; - if (yych <= 'F') goto yy127; - } - } else { - if (yych <= 'e') { - if (yych <= 'H') goto yy127; - if (yych >= 'e') goto yy126; - } else { - if (yych == 'g') goto yy125; - if (yych <= 'h') goto yy127; - } - } -yy125: - { RET(TOKEN_FLOAT_LITERAL); } -yy126: - yych = *++YYCURSOR; - if (yych <= ',') { - if (yych == '+') goto yy128; - goto yy114; - } else { - if (yych <= '-') goto yy128; - if (yych <= '/') goto yy114; - if (yych <= '9') goto yy129; - goto yy114; - } -yy127: - yych = *++YYCURSOR; - goto yy125; -yy128: - yych = *++YYCURSOR; - if (yych <= '/') goto yy114; - if (yych >= ':') goto yy114; -yy129: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'G') { - if (yych <= '9') { - if (yych <= '/') goto yy125; - goto yy129; - } else { - if (yych == 'F') goto yy127; - goto yy125; - } - } else { - if (yych <= 'f') { - if (yych <= 'H') goto yy127; - if (yych <= 'e') goto yy125; - goto yy127; - } else { - if (yych == 'h') goto yy127; - goto yy125; - } - } -yy131: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy132: - if (yych <= '\r') { - if (yych == '\n') goto yy114; - if (yych <= '\f') goto yy131; - goto yy114; - } else { - if (yych <= '\'') { - if (yych <= '&') goto yy131; - goto yy134; - } else { - if (yych != '\\') goto yy131; - } - } -yy133: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'b') { - if (yych <= '7') { - if (yych <= '&') { - if (yych == '"') goto yy131; - goto yy114; - } else { - if (yych <= '\'') goto yy131; - if (yych <= '/') goto yy114; - goto yy136; - } - } else { - if (yych <= '[') { - if (yych == '?') goto yy131; - goto yy114; - } else { - if (yych <= '\\') goto yy131; - if (yych <= '`') goto yy114; - goto yy131; - } - } - } else { - if (yych <= 'r') { - if (yych <= 'm') { - if (yych == 'f') goto yy131; - goto yy114; - } else { - if (yych <= 'n') goto yy131; - if (yych <= 'q') goto yy114; - goto yy131; - } - } else { - if (yych <= 'u') { - if (yych == 't') goto yy131; - goto yy114; - } else { - if (yych <= 'v') goto yy131; - if (yych == 'x') goto yy135; - goto yy114; - } - } - } -yy134: - yych = *++YYCURSOR; - goto yy9; -yy135: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy114; - if (yych <= '9') goto yy138; - goto yy114; - } else { - if (yych <= 'F') goto yy138; - if (yych <= '`') goto yy114; - if (yych <= 'f') goto yy138; - goto yy114; - } -yy136: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= '&') { - if (yych <= '\n') { - if (yych <= '\t') goto yy131; - goto yy114; - } else { - if (yych == '\r') goto yy114; - goto yy131; - } - } else { - if (yych <= '7') { - if (yych <= '\'') goto yy134; - if (yych <= '/') goto yy131; - goto yy136; - } else { - if (yych == '\\') goto yy133; - goto yy131; - } - } -yy138: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= '/') { - if (yych <= '\f') { - if (yych == '\n') goto yy114; - goto yy131; - } else { - if (yych <= '\r') goto yy114; - if (yych == '\'') goto yy134; - goto yy131; - } - } else { - if (yych <= '[') { - if (yych <= '9') goto yy138; - if (yych <= '@') goto yy131; - if (yych <= 'F') goto yy138; - goto yy131; - } else { - if (yych <= '\\') goto yy133; - if (yych <= '`') goto yy131; - if (yych <= 'f') goto yy138; - goto yy131; - } - } -yy140: - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy151; - if (yych == 'e') goto yy151; - goto yy150; -yy141: - yyaccept = 1; - YYMARKER = ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); - yych = *YYCURSOR; -yy142: - if (yych <= 'L') { - if (yych <= '9') { - if (yych == '.') goto yy140; - if (yych <= '/') goto yy9; - goto yy141; - } else { - if (yych == 'E') goto yy143; - if (yych <= 'K') goto yy9; - goto yy144; - } - } else { - if (yych <= 'e') { - if (yych == 'U') goto yy144; - if (yych <= 'd') goto yy9; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy9; - goto yy144; - } else { - if (yych == 'u') goto yy144; - goto yy9; - } - } - } -yy143: - yych = *++YYCURSOR; - if (yych <= ',') { - if (yych == '+') goto yy146; - goto yy114; - } else { - if (yych <= '-') goto yy146; - if (yych <= '/') goto yy114; - if (yych <= '9') goto yy147; - goto yy114; - } -yy144: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'U') { - if (yych == 'L') goto yy144; - if (yych <= 'T') goto yy9; - goto yy144; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy9; - goto yy144; - } else { - if (yych == 'u') goto yy144; - goto yy9; - } - } -yy146: - yych = *++YYCURSOR; - if (yych <= '/') goto yy114; - if (yych >= ':') goto yy114; -yy147: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'G') { - if (yych <= '9') { - if (yych <= '/') goto yy125; - goto yy147; - } else { - if (yych == 'F') goto yy127; - goto yy125; - } - } else { - if (yych <= 'f') { - if (yych <= 'H') goto yy127; - if (yych <= 'e') goto yy125; - goto yy127; - } else { - if (yych == 'h') goto yy127; - goto yy125; - } - } -yy149: - yyaccept = 2; - YYMARKER = ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); - yych = *YYCURSOR; -yy150: - if (yych <= 'G') { - if (yych <= 'D') { - if (yych <= '/') goto yy125; - if (yych <= '9') goto yy149; - goto yy125; - } else { - if (yych <= 'E') goto yy155; - if (yych <= 'F') goto yy127; - goto yy125; - } - } else { - if (yych <= 'e') { - if (yych <= 'H') goto yy127; - if (yych <= 'd') goto yy125; - goto yy155; - } else { - if (yych == 'g') goto yy125; - if (yych <= 'h') goto yy127; - goto yy125; - } - } -yy151: - yych = *++YYCURSOR; - if (yych <= ',') { - if (yych != '+') goto yy114; - } else { - if (yych <= '-') goto yy152; - if (yych <= '/') goto yy114; - if (yych <= '9') goto yy153; - goto yy114; - } -yy152: - yych = *++YYCURSOR; - if (yych <= '/') goto yy114; - if (yych >= ':') goto yy114; -yy153: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'G') { - if (yych <= '9') { - if (yych <= '/') goto yy125; - goto yy153; - } else { - if (yych == 'F') goto yy127; - goto yy125; - } - } else { - if (yych <= 'f') { - if (yych <= 'H') goto yy127; - if (yych <= 'e') goto yy125; - goto yy127; - } else { - if (yych == 'h') goto yy127; - goto yy125; - } - } -yy155: - yych = *++YYCURSOR; - if (yych <= ',') { - if (yych != '+') goto yy114; - } else { - if (yych <= '-') goto yy156; - if (yych <= '/') goto yy114; - if (yych <= '9') goto yy157; - goto yy114; - } -yy156: - yych = *++YYCURSOR; - if (yych <= '/') goto yy114; - if (yych >= ':') goto yy114; -yy157: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'G') { - if (yych <= '9') { - if (yych <= '/') goto yy125; - goto yy157; - } else { - if (yych == 'F') goto yy127; - goto yy125; - } - } else { - if (yych <= 'f') { - if (yych <= 'H') goto yy127; - if (yych <= 'e') goto yy125; - goto yy127; - } else { - if (yych == 'h') goto yy127; - goto yy125; - } - } -yy159: - yyaccept = 1; - YYMARKER = ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); - yych = *YYCURSOR; -yy160: - if (yych <= 'L') { - if (yych <= '9') { - if (yych == '.') goto yy140; - if (yych <= '/') goto yy9; - goto yy159; - } else { - if (yych == 'E') goto yy143; - if (yych <= 'K') goto yy9; - goto yy166; - } - } else { - if (yych <= 'e') { - if (yych == 'U') goto yy166; - if (yych <= 'd') goto yy9; - goto yy143; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy9; - goto yy166; - } else { - if (yych == 'u') goto yy166; - goto yy9; - } - } - } -yy161: - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy114; - if (yych >= ':') goto yy114; - } else { - if (yych <= 'F') goto yy162; - if (yych <= '`') goto yy114; - if (yych >= 'g') goto yy114; - } -yy162: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'T') { - if (yych <= '@') { - if (yych <= '/') goto yy9; - if (yych <= '9') goto yy162; - goto yy9; - } else { - if (yych <= 'F') goto yy162; - if (yych != 'L') goto yy9; - } - } else { - if (yych <= 'k') { - if (yych <= 'U') goto yy164; - if (yych <= '`') goto yy9; - if (yych <= 'f') goto yy162; - goto yy9; - } else { - if (yych <= 'l') goto yy164; - if (yych != 'u') goto yy9; - } - } -yy164: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'U') { - if (yych == 'L') goto yy164; - if (yych <= 'T') goto yy9; - goto yy164; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy9; - goto yy164; - } else { - if (yych == 'u') goto yy164; - goto yy9; - } - } -yy166: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'U') { - if (yych == 'L') goto yy166; - if (yych <= 'T') goto yy9; - goto yy166; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy9; - goto yy166; - } else { - if (yych == 'u') goto yy166; - goto yy9; - } - } -yy168: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy169: - if (yych <= 'Z') { - if (yych <= '/') goto yy7; - if (yych <= '9') goto yy168; - if (yych <= '@') goto yy7; - goto yy168; - } else { - if (yych <= '_') { - if (yych <= '^') goto yy7; - goto yy168; - } else { - if (yych <= '`') goto yy7; - if (yych <= 'z') goto yy168; - goto yy7; - } - } -yy170: - ++YYCURSOR; - { RET(TOKEN_DIVASSIGN); } -yy172: - ++YYCURSOR; - { goto singlelinecomment; } -yy174: - ++YYCURSOR; - { goto multilinecomment; } -yy176: - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; -yy177: - if (yych <= '\f') { - if (yych <= 0x08) goto yy114; - if (yych != '\n') goto yy176; - } else { - if (yych <= '\r') goto yy180; - if (yych == ' ') goto yy176; - goto yy114; - } -yy178: - ++YYCURSOR; -yy179: - { s->line++; goto scanner_loop; } -yy180: - ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy178; - goto yy179; -} - - -multilinecomment: - if (YYLIMIT == YYCURSOR) YYFILL(1); - matchptr = cursor; -// The "*\/" is just to avoid screwing up text editor syntax highlighting. - -{ - YYCTYPE yych; - if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - if (yych <= '\f') { - if (yych <= 0x00) goto yy188; - if (yych == '\n') goto yy185; - goto yy190; - } else { - if (yych <= '\r') goto yy187; - if (yych != '*') goto yy190; - } - ++YYCURSOR; - if ((yych = *YYCURSOR) == '/') goto yy192; -yy184: - { goto multilinecomment; } -yy185: - ++YYCURSOR; -yy186: - { - s->line++; - token = matchptr; - saw_newline = 1; - goto multilinecomment; - } -yy187: - yych = *++YYCURSOR; - if (yych == '\n') goto yy191; - goto yy186; -yy188: - ++YYCURSOR; - { - if (eoi) - RET(TOKEN_INCOMPLETE_COMMENT); - goto multilinecomment; - } -yy190: - yych = *++YYCURSOR; - goto yy184; -yy191: - yych = *++YYCURSOR; - goto yy186; -yy192: - ++YYCURSOR; - { - if (saw_newline) - RET('\n'); - else if (s->report_whitespace) - RET(' '); - goto scanner_loop; - } -} - - -singlelinecomment: - if (YYLIMIT == YYCURSOR) YYFILL(1); - matchptr = cursor; - -{ - YYCTYPE yych; - if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - if (yych <= '\n') { - if (yych <= 0x00) goto yy199; - if (yych <= '\t') goto yy201; - } else { - if (yych == '\r') goto yy198; - goto yy201; - } - ++YYCURSOR; -yy197: - { s->line++; token = matchptr; RET('\n'); } -yy198: - yych = *++YYCURSOR; - if (yych == '\n') goto yy203; - goto yy197; -yy199: - ++YYCURSOR; - { if (eoi) { RET(TOKEN_EOI); } goto singlelinecomment; } -yy201: - ++YYCURSOR; - { goto singlelinecomment; } -yy203: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy197; -} - - -ppdirective: - if (YYLIMIT == YYCURSOR) YYFILL(1); - -{ - YYCTYPE yych; - unsigned int yyaccept = 0; - if ((YYLIMIT - YYCURSOR) < 8) YYFILL(8); - yych = *YYCURSOR; - if (yych <= '\f') { - if (yych == '\t') goto yy208; - if (yych <= '\n') goto yy210; - goto yy208; - } else { - if (yych <= ' ') { - if (yych <= 0x1F) goto yy210; - goto yy208; - } else { - if (yych != '#') goto yy210; - } - } - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'h') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy214; - } else { - if (yych <= ' ') goto yy214; - if (yych <= 'c') goto yy207; - if (yych <= 'e') goto yy214; - } - } else { - if (yych <= 'o') { - if (yych <= 'i') goto yy214; - if (yych == 'l') goto yy214; - } else { - if (yych <= 'p') goto yy214; - if (yych == 'u') goto yy214; - } - } -yy207: - { - token = cursor = (const uchar *) s->source; - limit = cursor + s->bytes_left; - goto scanner_loop; - } -yy208: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy212; -yy209: - { goto ppdirective; } -yy210: - yych = *++YYCURSOR; - goto yy207; -yy211: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy212: - if (yych <= '\n') { - if (yych == '\t') goto yy211; - goto yy209; - } else { - if (yych <= '\f') goto yy211; - if (yych == ' ') goto yy211; - goto yy209; - } -yy213: - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7); - yych = *YYCURSOR; -yy214: - if (yych <= 'h') { - if (yych <= ' ') { - if (yych == '\t') goto yy213; - if (yych >= ' ') goto yy213; - } else { - if (yych <= 'c') goto yy215; - if (yych <= 'd') goto yy220; - if (yych <= 'e') goto yy217; - } - } else { - if (yych <= 'o') { - if (yych <= 'i') goto yy218; - if (yych == 'l') goto yy221; - } else { - if (yych <= 'p') goto yy216; - if (yych == 'u') goto yy219; - } - } -yy215: - YYCURSOR = YYMARKER; - if (yyaccept <= 0) { - goto yy207; - } else { - goto yy239; - } -yy216: - yych = *++YYCURSOR; - if (yych == 'r') goto yy272; - goto yy215; -yy217: - yych = *++YYCURSOR; - if (yych <= 'm') { - if (yych == 'l') goto yy255; - goto yy215; - } else { - if (yych <= 'n') goto yy256; - if (yych == 'r') goto yy257; - goto yy215; - } -yy218: - yych = *++YYCURSOR; - if (yych == 'f') goto yy238; - if (yych == 'n') goto yy237; - goto yy215; -yy219: - yych = *++YYCURSOR; - if (yych == 'n') goto yy232; - goto yy215; -yy220: - yych = *++YYCURSOR; - if (yych == 'e') goto yy226; - goto yy215; -yy221: - yych = *++YYCURSOR; - if (yych != 'i') goto yy215; - yych = *++YYCURSOR; - if (yych != 'n') goto yy215; - yych = *++YYCURSOR; - if (yych != 'e') goto yy215; - ++YYCURSOR; - { RET(TOKEN_PP_LINE); } -yy226: - yych = *++YYCURSOR; - if (yych != 'f') goto yy215; - yych = *++YYCURSOR; - if (yych != 'i') goto yy215; - yych = *++YYCURSOR; - if (yych != 'n') goto yy215; - yych = *++YYCURSOR; - if (yych != 'e') goto yy215; - ++YYCURSOR; - { RET(TOKEN_PP_DEFINE); } -yy232: - yych = *++YYCURSOR; - if (yych != 'd') goto yy215; - yych = *++YYCURSOR; - if (yych != 'e') goto yy215; - yych = *++YYCURSOR; - if (yych != 'f') goto yy215; - ++YYCURSOR; - { RET(TOKEN_PP_UNDEF); } -yy237: - yych = *++YYCURSOR; - if (yych == 'c') goto yy249; - goto yy215; -yy238: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'd') goto yy241; - if (yych == 'n') goto yy240; -yy239: - { RET(TOKEN_PP_IF); } -yy240: - yych = *++YYCURSOR; - if (yych == 'd') goto yy245; - goto yy215; -yy241: - yych = *++YYCURSOR; - if (yych != 'e') goto yy215; - yych = *++YYCURSOR; - if (yych != 'f') goto yy215; - ++YYCURSOR; - { RET(TOKEN_PP_IFDEF); } -yy245: - yych = *++YYCURSOR; - if (yych != 'e') goto yy215; - yych = *++YYCURSOR; - if (yych != 'f') goto yy215; - ++YYCURSOR; - { RET(TOKEN_PP_IFNDEF); } -yy249: - yych = *++YYCURSOR; - if (yych != 'l') goto yy215; - yych = *++YYCURSOR; - if (yych != 'u') goto yy215; - yych = *++YYCURSOR; - if (yych != 'd') goto yy215; - yych = *++YYCURSOR; - if (yych != 'e') goto yy215; - ++YYCURSOR; - { RET(TOKEN_PP_INCLUDE); } -yy255: - yych = *++YYCURSOR; - if (yych == 'i') goto yy266; - if (yych == 's') goto yy267; - goto yy215; -yy256: - yych = *++YYCURSOR; - if (yych == 'd') goto yy262; - goto yy215; -yy257: - yych = *++YYCURSOR; - if (yych != 'r') goto yy215; - yych = *++YYCURSOR; - if (yych != 'o') goto yy215; - yych = *++YYCURSOR; - if (yych != 'r') goto yy215; - ++YYCURSOR; - { RET(TOKEN_PP_ERROR); } -yy262: - yych = *++YYCURSOR; - if (yych != 'i') goto yy215; - yych = *++YYCURSOR; - if (yych != 'f') goto yy215; - ++YYCURSOR; - { RET(TOKEN_PP_ENDIF); } -yy266: - yych = *++YYCURSOR; - if (yych == 'f') goto yy270; - goto yy215; -yy267: - yych = *++YYCURSOR; - if (yych != 'e') goto yy215; - ++YYCURSOR; - { RET(TOKEN_PP_ELSE); } -yy270: - ++YYCURSOR; - { RET(TOKEN_PP_ELIF); } -yy272: - yych = *++YYCURSOR; - if (yych != 'a') goto yy215; - yych = *++YYCURSOR; - if (yych != 'g') goto yy215; - yych = *++YYCURSOR; - if (yych != 'm') goto yy215; - yych = *++YYCURSOR; - if (yych != 'a') goto yy215; - ++YYCURSOR; - { RET(TOKEN_PP_PRAGMA); } -} - - -bad_chars: - if (YYLIMIT == YYCURSOR) YYFILL(1); - -{ - YYCTYPE yych; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= '#') { - if (yych <= '\r') { - if (yych <= 0x00) goto yy282; - if (yych <= 0x08) goto yy284; - } else { - if (yych <= 0x1F) goto yy284; - if (yych == '"') goto yy284; - } - } else { - if (yych <= '@') { - if (yych <= '$') goto yy284; - if (yych >= '@') goto yy284; - } else { - if (yych == '`') goto yy284; - if (yych >= 0x7F) goto yy284; - } - } - ++YYCURSOR; - { cursor--; RET(TOKEN_BAD_CHARS); } -yy282: - ++YYCURSOR; - { - if (eoi) - { - assert( !((token >= sentinel) && - (token < sentinel+YYMAXFILL)) ); - eoi = 0; - cursor = (uchar *) s->source_base + s->orig_length; - RET(TOKEN_BAD_CHARS); // next call will be EOI. - } - goto bad_chars; - } -yy284: - ++YYCURSOR; - { goto bad_chars; } -} - - - assert(0 && "Shouldn't hit this code"); - RET(TOKEN_UNKNOWN); -} // preprocessor_lexer - -// end of mojoshader_lexer_preprocessor.re (or .c) ... - |