/* Generated by re2c */ #line 1 "cvsignore.ub.re" #define YYFILL(n) if (cursor >= limit) break; #define YYCTYPE unsigned int #define YYCURSOR cursor #define YYLIMIT limit #define YYMARKER marker #line 16 "cvsignore.ub.re" #define APPEND(text) \ append(output, outsize, text, sizeof(text) - sizeof(YYCTYPE)) inline void append(YYCTYPE *output, size_t & outsize, const YYCTYPE * text, size_t len) { memcpy(output + outsize, text, len); outsize += (len / sizeof(YYCTYPE)); } void scan(YYCTYPE *pText, size_t *pSize, int *pbChanged) { // rule // scan lines // find $ in lines // compact $: .. $ to $$ YYCTYPE *output; const YYCTYPE *cursor, *limit, *marker; cursor = marker = output = *pText; size_t insize = *pSize; size_t outsize = 0; limit = cursor + insize; while(1) { loop: { static const unsigned char yybm[] = { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; #line 78 "" { YYCTYPE yych; if((YYLIMIT - YYCURSOR) < 11) YYFILL(11); yych = *YYCURSOR; if(yych != '$') goto yy4; yych = *(YYMARKER = ++YYCURSOR); switch(yych) { case 'D': goto yy10; case 'I': goto yy9; case 'L': goto yy8; case 'R': goto yy7; case 'S': goto yy5; default: goto yy3; } yy3: #line 53 "cvsignore.ub.re" { output[outsize++] = cursor[-1]; if (cursor >= limit) break; goto loop; } #line 97 "" yy4: yych = *++YYCURSOR; goto yy3; yy5: yych = *++YYCURSOR; if(yych == 'o') goto yy44; yy6: YYCURSOR = YYMARKER; goto yy3; yy7: yych = *++YYCURSOR; if(yych == 'e') goto yy32; goto yy6; yy8: yych = *++YYCURSOR; if(yych == 'o') goto yy25; goto yy6; yy9: yych = *++YYCURSOR; if(yych == 'd') goto yy19; goto yy6; yy10: yych = *++YYCURSOR; if(yych != 'a') goto yy6; yych = *++YYCURSOR; if(yych != 't') goto yy6; yych = *++YYCURSOR; if(yych != 'e') goto yy6; yych = *++YYCURSOR; if(yych == '$') goto yy15; if(yych != ':') goto yy6; yych = *++YYCURSOR; if(yych == '$') goto yy6; goto yy18; yy15: ++YYCURSOR; #line 48 "cvsignore.ub.re" { APPEND(L"$" L"Date$"); goto loop; } #line 136 "" yy17: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy18: if(yych & ~0xFF) { goto yy17; } else if(yybm[0+yych] & 128) { goto yy17; } if(yych <= '#') goto yy6; goto yy15; yy19: yych = *++YYCURSOR; if(yych == '$') goto yy21; if(yych != ':') goto yy6; yych = *++YYCURSOR; if(yych == '$') goto yy6; goto yy24; yy21: ++YYCURSOR; #line 49 "cvsignore.ub.re" { APPEND(L"$" L"Id$"); goto loop; } #line 160 "" yy23: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy24: if(yych == 0x0000000A) goto yy6; if(yych == '$') goto yy21; goto yy23; yy25: yych = *++YYCURSOR; if(yych != 'g') goto yy6; yych = *++YYCURSOR; if(yych == '$') goto yy28; if(yych != ':') goto yy6; yych = *++YYCURSOR; if(yych == '$') goto yy6; goto yy31; yy28: ++YYCURSOR; #line 50 "cvsignore.ub.re" { APPEND(L"$" L"Log$"); goto loop; } #line 182 "" yy30: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy31: if(yych == 0x0000000A) goto yy6; if(yych == '$') goto yy28; goto yy30; yy32: yych = *++YYCURSOR; if(yych != 'v') goto yy6; yych = *++YYCURSOR; if(yych != 'i') goto yy6; yych = *++YYCURSOR; if(yych != 's') goto yy6; yych = *++YYCURSOR; if(yych != 'i') goto yy6; yych = *++YYCURSOR; if(yych != 'o') goto yy6; yych = *++YYCURSOR; if(yych != 'n') goto yy6; yych = *++YYCURSOR; if(yych == '$') goto yy40; if(yych != ':') goto yy6; yych = *++YYCURSOR; if(yych == '$') goto yy6; goto yy43; yy40: ++YYCURSOR; #line 51 "cvsignore.ub.re" { APPEND(L"$" L"Revision$"); goto loop; } #line 214 "" yy42: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy43: if(yych == 0x0000000A) goto yy6; if(yych == '$') goto yy40; goto yy42; yy44: yych = *++YYCURSOR; if(yych != 'u') goto yy6; yych = *++YYCURSOR; if(yych != 'r') goto yy6; yych = *++YYCURSOR; if(yych != 'c') goto yy6; yych = *++YYCURSOR; if(yych != 'e') goto yy6; yych = *++YYCURSOR; if(yych == '$') goto yy50; if(yych != ':') goto yy6; yych = *++YYCURSOR; if(yych == '$') goto yy6; goto yy53; yy50: ++YYCURSOR; #line 52 "cvsignore.ub.re" { APPEND(L"$" L"Source$"); goto loop; } #line 242 "" yy52: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy53: if(yych == 0x0000000A) goto yy6; if(yych == '$') goto yy50; goto yy52; } } #line 55 "cvsignore.ub.re" } output[outsize] = '\0'; // set the new size *pSize = outsize; *pbChanged = (insize == outsize) ? 0 : 1; }