/* 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; std2: #line 33 "src/sc_man_scanner.re" if (!CMode) { #line 27 "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 47 "src/sc_man_scanner.re" { goto normal_token; } #line 56 "src/sc_man_scanner.h" yy3: yych = *++YYCURSOR; if(yych == '*') goto yy28; if(yych == '/') goto yy24; goto yy19; yy4: yych = *++YYCURSOR; goto yy25; #line 49 "src/sc_man_scanner.re" { goto normal_token; } #line 67 "src/sc_man_scanner.h" yy6: ++YYCURSOR; yych = *YYCURSOR; goto yy23; yy7: #line 40 "src/sc_man_scanner.re" { goto std; } #line 75 "src/sc_man_scanner.h" yy8: ++YYCURSOR; #line 41 "src/sc_man_scanner.re" { goto newline; } #line 80 "src/sc_man_scanner.h" yy10: ++YYCURSOR; #line 42 "src/sc_man_scanner.re" { goto string; } #line 85 "src/sc_man_scanner.h" yy12: ++YYCURSOR; #line 44 "src/sc_man_scanner.re" { goto normal_token; } #line 90 "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 38 "src/sc_man_scanner.re" { goto newline; } #line 190 "src/sc_man_scanner.h" yy28: ++YYCURSOR; #line 37 "src/sc_man_scanner.re" { goto comment; } #line 195 "src/sc_man_scanner.h" } #line 50 "src/sc_man_scanner.re" } else { #line 203 "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 yy50; } } else { if(yych <= ',') { if(yych <= '&') goto yy45; if(yych <= '\'') goto yy51; goto yy50; } else { if(yych <= '-') goto yy40; if(yych <= '.') goto yy44; if(yych >= '0') goto yy42; } } } else { if(yych <= '^') { if(yych <= '=') { if(yych <= ';') goto yy50; if(yych <= '<') goto yy48; goto yy46; } else { if(yych <= '>') goto yy49; if(yych <= '@') goto yy50; if(yych <= 'Z') goto yy51; goto yy50; } } else { if(yych <= 'z') { if(yych == '`') goto yy50; goto yy51; } else { if(yych == '|') goto yy47; if(yych <= '~') goto yy50; goto yy51; } } } yych = *++YYCURSOR; if(yych == '*') goto yy75; if(yych == '/') goto yy73; yy33: #line 69 "src/sc_man_scanner.re" { goto normal_token; } #line 257 "src/sc_man_scanner.h" yy34: ++YYCURSOR; yych = *YYCURSOR; goto yy72; yy35: #line 58 "src/sc_man_scanner.re" { goto std; } #line 265 "src/sc_man_scanner.h" yy36: ++YYCURSOR; #line 59 "src/sc_man_scanner.re" { goto newline; } #line 270 "src/sc_man_scanner.h" yy38: ++YYCURSOR; #line 60 "src/sc_man_scanner.re" { goto string; } #line 275 "src/sc_man_scanner.h" yy40: ++YYCURSOR; #line 62 "src/sc_man_scanner.re" { goto negative_check; } #line 280 "src/sc_man_scanner.h" yy42: ++YYCURSOR; if((yych = *YYCURSOR) <= '@') { if(yych <= '-') { if(yych == '\'') goto yy53; } else { if(yych <= '.') goto yy69; if(yych <= '/') goto yy43; if(yych <= '9') goto yy67; } } else { if(yych <= '_') { if(yych <= 'Z') goto yy53; if(yych >= '_') goto yy53; } else { if(yych <= '`') goto yy43; if(yych <= 'z') goto yy53; if(yych >= 0x7F) goto yy53; } } yy43: #line 63 "src/sc_man_scanner.re" { goto normal_token; } #line 304 "src/sc_man_scanner.h" yy44: yych = *++YYCURSOR; if(yych <= '/') goto yy33; if(yych <= '9') goto yy65; goto yy33; yy45: yych = *++YYCURSOR; if(yych == '&') goto yy63; goto yy33; yy46: yych = *++YYCURSOR; if(yych == '=') goto yy61; goto yy33; yy47: yych = *++YYCURSOR; if(yych == '|') goto yy59; goto yy33; yy48: yych = *++YYCURSOR; if(yych == '<') goto yy57; goto yy33; yy49: yych = *++YYCURSOR; if(yych == '>') goto yy55; goto yy33; yy50: yych = *++YYCURSOR; goto yy33; yy51: ++YYCURSOR; yych = *YYCURSOR; goto yy54; yy52: #line 70 "src/sc_man_scanner.re" { goto normal_token; } #line 340 "src/sc_man_scanner.h" yy53: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy54: if(yych <= 'Z') { if(yych <= '/') { if(yych == '\'') goto yy53; goto yy52; } else { if(yych <= '9') goto yy53; if(yych <= '@') goto yy52; goto yy53; } } else { if(yych <= '`') { if(yych == '_') goto yy53; goto yy52; } else { if(yych <= 'z') goto yy53; if(yych <= '~') goto yy52; goto yy53; } } yy55: ++YYCURSOR; #line 68 "src/sc_man_scanner.re" { goto normal_token; } #line 369 "src/sc_man_scanner.h" yy57: ++YYCURSOR; #line 67 "src/sc_man_scanner.re" { goto normal_token; } #line 374 "src/sc_man_scanner.h" yy59: ++YYCURSOR; #line 66 "src/sc_man_scanner.re" { goto normal_token; } #line 379 "src/sc_man_scanner.h" yy61: ++YYCURSOR; #line 65 "src/sc_man_scanner.re" { goto normal_token; } #line 384 "src/sc_man_scanner.h" yy63: ++YYCURSOR; #line 64 "src/sc_man_scanner.re" { goto normal_token; } #line 389 "src/sc_man_scanner.h" yy65: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= '/') goto yy43; if(yych <= '9') goto yy65; goto yy43; yy67: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= '@') { if(yych <= '-') { if(yych == '\'') goto yy53; goto yy43; } else { if(yych <= '.') goto yy69; if(yych <= '/') goto yy43; if(yych <= '9') goto yy67; goto yy43; } } else { if(yych <= '_') { if(yych <= 'Z') goto yy53; if(yych <= '^') goto yy43; goto yy53; } else { if(yych <= '`') goto yy43; if(yych <= 'z') goto yy53; if(yych <= '~') goto yy43; goto yy53; } } yy69: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= '/') goto yy43; if(yych <= '9') goto yy69; goto yy43; yy71: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy72: if(yych == 0x0A) goto yy35; if(yych <= ' ') goto yy71; goto yy35; yy73: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == 0x0A) goto yy77; goto yy73; yy75: ++YYCURSOR; #line 55 "src/sc_man_scanner.re" { goto comment; } #line 448 "src/sc_man_scanner.h" yy77: ++YYCURSOR; #line 56 "src/sc_man_scanner.re" { goto newline; } #line 453 "src/sc_man_scanner.h" } #line 73 "src/sc_man_scanner.re" } negative_check: if (YYCURSOR >= YYLIMIT) { goto normal_token; } if (*YYCURSOR >= '0' && *YYCURSOR <= '9') { goto std2; } if (*YYCURSOR != '.' || YYCURSOR+1 >= YYLIMIT) { goto normal_token; } if (*(YYCURSOR+1) >= '0' && *YYCURSOR <= '9') { goto std2; } goto normal_token; comment: #line 480 "src/sc_man_scanner.h" { YYCTYPE yych; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych == 0x0A) goto yy83; if(yych != '*') goto yy85; ++YYCURSOR; if((yych = *YYCURSOR) == '/') goto yy86; yy82: #line 109 "src/sc_man_scanner.re" { goto comment; } #line 492 "src/sc_man_scanner.h" yy83: ++YYCURSOR; #line 99 "src/sc_man_scanner.re" { if (YYCURSOR >= YYLIMIT) { ScriptPtr = ScriptEndPtr; return false; } sc_Line++; sc_Crossed = true; goto comment; } #line 506 "src/sc_man_scanner.h" yy85: yych = *++YYCURSOR; goto yy82; yy86: ++YYCURSOR; #line 97 "src/sc_man_scanner.re" { goto std; } #line 514 "src/sc_man_scanner.h" } #line 110 "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;