1 /* Generated by re2c */
2 #line 1 "cvsignore_b.re"
3 // re2c $INPUT -o $OUTPUT -b
4
5 #define YYFILL(n) if (cursor >= limit) break;
6 #define YYCTYPE char
7 #define YYCURSOR cursor
8 #define YYLIMIT limit
9 #define YYMARKER marker
10
11 #line 17 "cvsignore_b.re"
12
13
14 #define APPEND(text) \
15 append(output, outsize, text, sizeof(text) - sizeof(YYCTYPE))
16
append(YYCTYPE * output,size_t & outsize,const YYCTYPE * text,size_t len)17 inline void append(YYCTYPE *output, size_t & outsize, const YYCTYPE * text, size_t len)
18 {
19 memcpy(output + outsize, text, len);
20 outsize += (len / sizeof(YYCTYPE));
21 }
22
scan(YYCTYPE * pText,size_t * pSize,int * pbChanged)23 void scan(YYCTYPE *pText, size_t *pSize, int *pbChanged)
24 {
25 // rule
26 // scan lines
27 // find $ in lines
28 // compact $<keyword>: .. $ to $<keyword>$
29
30 YYCTYPE *output;
31 const YYCTYPE *cursor, *limit, *marker;
32
33 cursor = marker = output = *pText;
34
35 size_t insize = *pSize;
36 size_t outsize = 0;
37
38 limit = cursor + insize;
39
40 while(1) {
41 loop:
42
43 #line 44 "cvsignore_b.c"
44 {
45 YYCTYPE yych;
46 static const unsigned char yybm[] = {
47 128, 128, 128, 128, 128, 128, 128, 128,
48 128, 128, 0, 128, 128, 128, 128, 128,
49 128, 128, 128, 128, 128, 128, 128, 128,
50 128, 128, 128, 128, 128, 128, 128, 128,
51 128, 128, 128, 128, 0, 128, 128, 128,
52 128, 128, 128, 128, 128, 128, 128, 128,
53 128, 128, 128, 128, 128, 128, 128, 128,
54 128, 128, 128, 128, 128, 128, 128, 128,
55 128, 128, 128, 128, 128, 128, 128, 128,
56 128, 128, 128, 128, 128, 128, 128, 128,
57 128, 128, 128, 128, 128, 128, 128, 128,
58 128, 128, 128, 128, 128, 128, 128, 128,
59 128, 128, 128, 128, 128, 128, 128, 128,
60 128, 128, 128, 128, 128, 128, 128, 128,
61 128, 128, 128, 128, 128, 128, 128, 128,
62 128, 128, 128, 128, 128, 128, 128, 128,
63 128, 128, 128, 128, 128, 128, 128, 128,
64 128, 128, 128, 128, 128, 128, 128, 128,
65 128, 128, 128, 128, 128, 128, 128, 128,
66 128, 128, 128, 128, 128, 128, 128, 128,
67 128, 128, 128, 128, 128, 128, 128, 128,
68 128, 128, 128, 128, 128, 128, 128, 128,
69 128, 128, 128, 128, 128, 128, 128, 128,
70 128, 128, 128, 128, 128, 128, 128, 128,
71 128, 128, 128, 128, 128, 128, 128, 128,
72 128, 128, 128, 128, 128, 128, 128, 128,
73 128, 128, 128, 128, 128, 128, 128, 128,
74 128, 128, 128, 128, 128, 128, 128, 128,
75 128, 128, 128, 128, 128, 128, 128, 128,
76 128, 128, 128, 128, 128, 128, 128, 128,
77 128, 128, 128, 128, 128, 128, 128, 128,
78 128, 128, 128, 128, 128, 128, 128, 128,
79 };
80 if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
81 yych = *YYCURSOR;
82 if (yych == '$') goto yy4;
83 ++YYCURSOR;
84 yy3:
85 #line 54 "cvsignore_b.re"
86 { output[outsize++] = cursor[-1]; if (cursor >= limit) break; goto loop; }
87 #line 88 "cvsignore_b.c"
88 yy4:
89 yych = *(YYMARKER = ++YYCURSOR);
90 switch (yych) {
91 case 'D': goto yy5;
92 case 'I': goto yy7;
93 case 'L': goto yy8;
94 case 'R': goto yy9;
95 case 'S': goto yy10;
96 default: goto yy3;
97 }
98 yy5:
99 yych = *++YYCURSOR;
100 if (yych == 'a') goto yy11;
101 yy6:
102 YYCURSOR = YYMARKER;
103 goto yy3;
104 yy7:
105 yych = *++YYCURSOR;
106 if (yych == 'd') goto yy12;
107 goto yy6;
108 yy8:
109 yych = *++YYCURSOR;
110 if (yych == 'o') goto yy13;
111 goto yy6;
112 yy9:
113 yych = *++YYCURSOR;
114 if (yych == 'e') goto yy14;
115 goto yy6;
116 yy10:
117 yych = *++YYCURSOR;
118 if (yych == 'o') goto yy15;
119 goto yy6;
120 yy11:
121 yych = *++YYCURSOR;
122 if (yych == 't') goto yy16;
123 goto yy6;
124 yy12:
125 yych = *++YYCURSOR;
126 if (yych == '$') goto yy17;
127 if (yych == ':') goto yy19;
128 goto yy6;
129 yy13:
130 yych = *++YYCURSOR;
131 if (yych == 'g') goto yy20;
132 goto yy6;
133 yy14:
134 yych = *++YYCURSOR;
135 if (yych == 'v') goto yy21;
136 goto yy6;
137 yy15:
138 yych = *++YYCURSOR;
139 if (yych == 'u') goto yy22;
140 goto yy6;
141 yy16:
142 yych = *++YYCURSOR;
143 if (yych == 'e') goto yy23;
144 goto yy6;
145 yy17:
146 ++YYCURSOR;
147 #line 50 "cvsignore_b.re"
148 { APPEND(L"$" L"Id$"); goto loop; }
149 #line 150 "cvsignore_b.c"
150 yy19:
151 yych = *++YYCURSOR;
152 if (yych == '$') goto yy6;
153 goto yy25;
154 yy20:
155 yych = *++YYCURSOR;
156 if (yych == '$') goto yy26;
157 if (yych == ':') goto yy28;
158 goto yy6;
159 yy21:
160 yych = *++YYCURSOR;
161 if (yych == 'i') goto yy29;
162 goto yy6;
163 yy22:
164 yych = *++YYCURSOR;
165 if (yych == 'r') goto yy30;
166 goto yy6;
167 yy23:
168 yych = *++YYCURSOR;
169 if (yych == '$') goto yy31;
170 if (yych == ':') goto yy33;
171 goto yy6;
172 yy24:
173 ++YYCURSOR;
174 if (YYLIMIT <= YYCURSOR) YYFILL(1);
175 yych = *YYCURSOR;
176 yy25:
177 if (yybm[0+yych] & 128) {
178 goto yy24;
179 }
180 if (yych <= '\n') goto yy6;
181 goto yy17;
182 yy26:
183 ++YYCURSOR;
184 #line 51 "cvsignore_b.re"
185 { APPEND(L"$" L"Log$"); goto loop; }
186 #line 187 "cvsignore_b.c"
187 yy28:
188 yych = *++YYCURSOR;
189 if (yych == '$') goto yy6;
190 goto yy35;
191 yy29:
192 yych = *++YYCURSOR;
193 if (yych == 's') goto yy36;
194 goto yy6;
195 yy30:
196 yych = *++YYCURSOR;
197 if (yych == 'c') goto yy37;
198 goto yy6;
199 yy31:
200 ++YYCURSOR;
201 #line 49 "cvsignore_b.re"
202 { APPEND(L"$" L"Date$"); goto loop; }
203 #line 204 "cvsignore_b.c"
204 yy33:
205 yych = *++YYCURSOR;
206 if (yych == '$') goto yy6;
207 goto yy39;
208 yy34:
209 ++YYCURSOR;
210 if (YYLIMIT <= YYCURSOR) YYFILL(1);
211 yych = *YYCURSOR;
212 yy35:
213 if (yych == '\n') goto yy6;
214 if (yych == '$') goto yy26;
215 goto yy34;
216 yy36:
217 yych = *++YYCURSOR;
218 if (yych == 'i') goto yy40;
219 goto yy6;
220 yy37:
221 yych = *++YYCURSOR;
222 if (yych == 'e') goto yy41;
223 goto yy6;
224 yy38:
225 ++YYCURSOR;
226 if (YYLIMIT <= YYCURSOR) YYFILL(1);
227 yych = *YYCURSOR;
228 yy39:
229 if (yych == '\n') goto yy6;
230 if (yych == '$') goto yy31;
231 goto yy38;
232 yy40:
233 yych = *++YYCURSOR;
234 if (yych == 'o') goto yy42;
235 goto yy6;
236 yy41:
237 yych = *++YYCURSOR;
238 if (yych == '$') goto yy43;
239 if (yych == ':') goto yy45;
240 goto yy6;
241 yy42:
242 yych = *++YYCURSOR;
243 if (yych == 'n') goto yy46;
244 goto yy6;
245 yy43:
246 ++YYCURSOR;
247 #line 53 "cvsignore_b.re"
248 { APPEND(L"$" L"Source$"); goto loop; }
249 #line 250 "cvsignore_b.c"
250 yy45:
251 yych = *++YYCURSOR;
252 if (yych == '$') goto yy6;
253 goto yy48;
254 yy46:
255 yych = *++YYCURSOR;
256 if (yych == '$') goto yy49;
257 if (yych == ':') goto yy51;
258 goto yy6;
259 yy47:
260 ++YYCURSOR;
261 if (YYLIMIT <= YYCURSOR) YYFILL(1);
262 yych = *YYCURSOR;
263 yy48:
264 if (yych == '\n') goto yy6;
265 if (yych == '$') goto yy43;
266 goto yy47;
267 yy49:
268 ++YYCURSOR;
269 #line 52 "cvsignore_b.re"
270 { APPEND(L"$" L"Revision$"); goto loop; }
271 #line 272 "cvsignore_b.c"
272 yy51:
273 yych = *++YYCURSOR;
274 if (yych == '$') goto yy6;
275 goto yy53;
276 yy52:
277 ++YYCURSOR;
278 if (YYLIMIT <= YYCURSOR) YYFILL(1);
279 yych = *YYCURSOR;
280 yy53:
281 if (yych == '\n') goto yy6;
282 if (yych == '$') goto yy49;
283 goto yy52;
284 }
285 #line 56 "cvsignore_b.re"
286
287 }
288 output[outsize] = '\0';
289
290 // set the new size
291 *pSize = outsize;
292
293 *pbChanged = (insize == outsize) ? 0 : 1;
294 }
295