/* Generated by re2c 0.10.5 */ #line 1 "src/sc_man_scanner.re" #define YYCTYPE char #define YYCURSOR cursor #define YYLIMIT limit #define YYMARKER marker // This buffer must be as large as the largest YYFILL call YYCTYPE eofbuf[2]; #define YYFILL(n) { if(n == 2) { eofbuf[0] = *cursor; } eofbuf[n-1] = '\n'; cursor = eofbuf; limit = eofbuf + n - 1; sc_End = true; } //#define YYDEBUG(s,c) { Printf ("%d: %02x\n", s, c); } #define YYDEBUG(s,c) char *cursor = ScriptPtr; char *limit = ScriptEndPtr; std: tok = YYCURSOR; #line 32 "src/sc_man_scanner.re" if (!CMode) { #line 26 "src/sc_man_scanner.h" { YYCTYPE yych; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= '/') { if(yych <= ' ') { if(yych == 0x0A) goto yy8; goto yy6; } else { if(yych == '"') goto yy10; if(yych <= '.') goto yy14; goto yy3; } } else { if(yych <= '<') { if(yych == ';') goto yy4; goto yy14; } else { if(yych <= '=') goto yy12; if(yych <= 'z') goto yy14; if(yych <= '}') goto yy12; goto yy14; } } yy2: #line 46 "src/sc_man_scanner.re" { goto normal_token; } #line 55 "src/sc_man_scanner.h" yy3: yych = *++YYCURSOR; if(yych == '*') goto yy28; if(yych == '/') goto yy24; goto yy19; yy4: yych = *++YYCURSOR; goto yy25; #line 48 "src/sc_man_scanner.re" { goto normal_token; } #line 66 "src/sc_man_scanner.h" yy6: ++YYCURSOR; yych = *YYCURSOR; goto yy23; yy7: #line 39 "src/sc_man_scanner.re" { goto std; } #line 74 "src/sc_man_scanner.h" yy8: ++YYCURSOR; #line 40 "src/sc_man_scanner.re" { goto newline; } #line 79 "src/sc_man_scanner.h" yy10: ++YYCURSOR; #line 41 "src/sc_man_scanner.re" { goto string; } #line 84 "src/sc_man_scanner.h" yy12: ++YYCURSOR; #line 43 "src/sc_man_scanner.re" { goto normal_token; } #line 89 "src/sc_man_scanner.h" yy14: yych = *++YYCURSOR; goto yy17; yy15: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= '/') { if(yych <= '"') { if(yych == '!') goto yy18; goto yy2; } else { if(yych == '*') goto yy2; if(yych <= '.') goto yy18; goto yy2; } } else { if(yych <= '<') { if(yych == ';') goto yy2; goto yy18; } else { if(yych <= '=') goto yy2; if(yych <= 'z') goto yy18; if(yych <= '}') goto yy2; goto yy18; } } yy16: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy17: if(yych <= ':') { if(yych <= '"') { if(yych == '!') goto yy16; goto yy2; } else { if(yych == '/') goto yy15; goto yy16; } } else { if(yych <= '=') { if(yych == '<') goto yy16; goto yy2; } else { if(yych <= 'z') goto yy16; if(yych <= '}') goto yy2; goto yy16; } } yy18: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy19: if(yych <= '/') { if(yych <= '"') { if(yych == '!') goto yy18; goto yy2; } else { if(yych == '*') goto yy20; if(yych <= '.') goto yy18; goto yy15; } } else { if(yych <= '<') { if(yych == ';') goto yy2; goto yy18; } else { if(yych <= '=') goto yy2; if(yych <= 'z') goto yy18; if(yych <= '}') goto yy2; goto yy18; } } yy20: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == '*') goto yy20; if(yych == '/') goto yy15; goto yy2; yy22: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy23: if(yych == 0x0A) goto yy7; if(yych <= ' ') goto yy22; goto yy7; yy24: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy25: if(yych != 0x0A) goto yy24; ++YYCURSOR; #line 37 "src/sc_man_scanner.re" { goto newline; } #line 189 "src/sc_man_scanner.h" yy28: ++YYCURSOR; #line 36 "src/sc_man_scanner.re" { goto comment; } #line 194 "src/sc_man_scanner.h" } #line 49 "src/sc_man_scanner.re" } else { #line 202 "src/sc_man_scanner.h" { YYCTYPE yych; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= '9') { if(yych <= '%') { if(yych <= ' ') { if(yych == 0x0A) goto yy36; goto yy34; } else { if(yych == '"') goto yy38; goto yy48; } } else { if(yych <= ',') { if(yych <= '&') goto yy43; if(yych <= '\'') goto yy49; goto yy48; } else { if(yych <= '-') goto yy40; if(yych <= '.') goto yy48; if(yych >= '0') goto yy41; } } } else { if(yych <= '^') { if(yych <= '=') { if(yych <= ';') goto yy48; if(yych <= '<') goto yy46; goto yy44; } else { if(yych <= '>') goto yy47; if(yych <= '@') goto yy48; if(yych <= 'Z') goto yy49; goto yy48; } } else { if(yych <= 'z') { if(yych == '`') goto yy48; goto yy49; } else { if(yych == '|') goto yy45; if(yych <= '~') goto yy48; goto yy49; } } } yych = *++YYCURSOR; if(yych == '*') goto yy73; if(yych == '/') goto yy71; yy33: #line 67 "src/sc_man_scanner.re" { goto normal_token; } #line 256 "src/sc_man_scanner.h" yy34: ++YYCURSOR; yych = *YYCURSOR; goto yy70; yy35: #line 57 "src/sc_man_scanner.re" { goto std; } #line 264 "src/sc_man_scanner.h" yy36: ++YYCURSOR; #line 58 "src/sc_man_scanner.re" { goto newline; } #line 269 "src/sc_man_scanner.h" yy38: ++YYCURSOR; #line 59 "src/sc_man_scanner.re" { goto string; } #line 274 "src/sc_man_scanner.h" yy40: yych = *++YYCURSOR; if(yych <= '/') goto yy33; if(yych <= '9') goto yy67; goto yy33; yy41: ++YYCURSOR; if((yych = *YYCURSOR) <= '@') { if(yych <= '-') { if(yych == '\'') goto yy51; } else { if(yych <= '.') goto yy65; if(yych <= '/') goto yy42; if(yych <= '9') goto yy63; } } else { if(yych <= '_') { if(yych <= 'Z') goto yy51; if(yych >= '_') goto yy51; } else { if(yych <= '`') goto yy42; if(yych <= 'z') goto yy51; if(yych >= 0x7F) goto yy51; } } yy42: #line 61 "src/sc_man_scanner.re" { goto normal_token; } #line 303 "src/sc_man_scanner.h" yy43: yych = *++YYCURSOR; if(yych == '&') goto yy61; goto yy33; yy44: yych = *++YYCURSOR; if(yych == '=') goto yy59; goto yy33; yy45: yych = *++YYCURSOR; if(yych == '|') goto yy57; goto yy33; yy46: yych = *++YYCURSOR; if(yych == '<') goto yy55; goto yy33; yy47: yych = *++YYCURSOR; if(yych == '>') goto yy53; goto yy33; yy48: yych = *++YYCURSOR; goto yy33; yy49: ++YYCURSOR; yych = *YYCURSOR; goto yy52; yy50: #line 68 "src/sc_man_scanner.re" { goto normal_token; } #line 334 "src/sc_man_scanner.h" yy51: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy52: if(yych <= 'Z') { if(yych <= '/') { if(yych == '\'') goto yy51; goto yy50; } else { if(yych <= '9') goto yy51; if(yych <= '@') goto yy50; goto yy51; } } else { if(yych <= '`') { if(yych == '_') goto yy51; goto yy50; } else { if(yych <= 'z') goto yy51; if(yych <= '~') goto yy50; goto yy51; } } yy53: ++YYCURSOR; #line 66 "src/sc_man_scanner.re" { goto normal_token; } #line 363 "src/sc_man_scanner.h" yy55: ++YYCURSOR; #line 65 "src/sc_man_scanner.re" { goto normal_token; } #line 368 "src/sc_man_scanner.h" yy57: ++YYCURSOR; #line 64 "src/sc_man_scanner.re" { goto normal_token; } #line 373 "src/sc_man_scanner.h" yy59: ++YYCURSOR; #line 63 "src/sc_man_scanner.re" { goto normal_token; } #line 378 "src/sc_man_scanner.h" yy61: ++YYCURSOR; #line 62 "src/sc_man_scanner.re" { goto normal_token; } #line 383 "src/sc_man_scanner.h" yy63: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= '@') { if(yych <= '-') { if(yych == '\'') goto yy51; goto yy42; } else { if(yych <= '.') goto yy65; if(yych <= '/') goto yy42; if(yych <= '9') goto yy63; goto yy42; } } else { if(yych <= '_') { if(yych <= 'Z') goto yy51; if(yych <= '^') goto yy42; goto yy51; } else { if(yych <= '`') goto yy42; if(yych <= 'z') goto yy51; if(yych <= '~') goto yy42; goto yy51; } } yy65: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= '/') goto yy42; if(yych <= '9') goto yy65; goto yy42; yy67: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == '.') goto yy65; if(yych <= '/') goto yy42; if(yych <= '9') goto yy67; goto yy42; yy69: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy70: if(yych == 0x0A) goto yy35; if(yych <= ' ') goto yy69; goto yy35; yy71: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == 0x0A) goto yy75; goto yy71; yy73: ++YYCURSOR; #line 54 "src/sc_man_scanner.re" { goto comment; } #line 443 "src/sc_man_scanner.h" yy75: ++YYCURSOR; #line 55 "src/sc_man_scanner.re" { goto newline; } #line 448 "src/sc_man_scanner.h" } #line 71 "src/sc_man_scanner.re" } comment: #line 456 "src/sc_man_scanner.h" { YYCTYPE yych; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych == 0x0A) goto yy81; if(yych != '*') goto yy83; ++YYCURSOR; if((yych = *YYCURSOR) == '/') goto yy84; yy80: #line 88 "src/sc_man_scanner.re" { goto comment; } #line 468 "src/sc_man_scanner.h" yy81: ++YYCURSOR; #line 78 "src/sc_man_scanner.re" { if (YYCURSOR >= YYLIMIT) { ScriptPtr = ScriptEndPtr; return false; } sc_Line++; sc_Crossed = true; goto comment; } #line 482 "src/sc_man_scanner.h" yy83: yych = *++YYCURSOR; goto yy80; yy84: ++YYCURSOR; #line 76 "src/sc_man_scanner.re" { goto std; } #line 490 "src/sc_man_scanner.h" } #line 89 "src/sc_man_scanner.re" newline: if (YYCURSOR >= YYLIMIT) { ScriptPtr = ScriptEndPtr; return false; } sc_Line++; sc_Crossed = true; goto std; normal_token: ScriptPtr = (YYCURSOR >= YYLIMIT) ? ScriptEndPtr : cursor; sc_StringLen = MIN (ScriptPtr - tok, MAX_STRING_SIZE-1); memcpy (sc_String, tok, sc_StringLen); sc_String[sc_StringLen] = '\0'; return true; string: if (YYLIMIT != ScriptEndPtr) { ScriptPtr = ScriptEndPtr; return false; } ScriptPtr = cursor; for (sc_StringLen = 0; cursor < YYLIMIT; ++cursor) { if (Escape && *cursor == '\\' && *(cursor + 1) == '"') { cursor++; } else if (*cursor == '"') { break; } if (*cursor == '\n') { sc_Line++; sc_Crossed = true; } if (sc_StringLen < MAX_STRING_SIZE-1) { sc_String[sc_StringLen++] = *cursor; } } ScriptPtr = cursor + 1; sc_String[sc_StringLen] = '\0'; return true;