180 (func |
178 (func |
181 (symbol 'clean') |
179 (symbol 'clean') |
182 None))) |
180 None))) |
183 * optimized: |
181 * optimized: |
184 (or |
182 (or |
185 (symbol 'a1') |
183 (patterns |
186 (symbol 'a2') |
184 (symbol 'a1') |
|
185 (symbol 'a2')) |
187 (and |
186 (and |
188 (func |
187 (func |
189 (symbol 'clean') |
188 (symbol 'clean') |
190 None) |
189 None) |
191 (func |
190 (func |
192 (symbol 'grep') |
191 (symbol 'grep') |
193 (string 'b')))) |
192 (string 'b')))) |
194 * matcher: |
193 * matcher: |
195 <unionmatcher matchers=[ |
194 <unionmatcher matchers=[ |
196 <patternmatcher patterns='(?:a1$)'>, |
195 <patternmatcher patterns='(?:a1$|a2$)'>, |
197 <patternmatcher patterns='(?:a2$)'>, |
|
198 <intersectionmatcher |
196 <intersectionmatcher |
199 m1=<predicatenmatcher pred=clean>, |
197 m1=<predicatenmatcher pred=clean>, |
200 m2=<predicatenmatcher pred=grep('b')>>]> |
198 m2=<predicatenmatcher pred=grep('b')>>]> |
201 a1 |
199 a1 |
202 a2 |
200 a2 |
203 b1 |
201 b1 |
204 b2 |
202 b2 |
205 |
203 |
|
204 Union of basic patterns: |
|
205 |
|
206 $ fileset -p optimized -s -r. 'a1 or a2 or path:b1' |
|
207 * optimized: |
|
208 (patterns |
|
209 (symbol 'a1') |
|
210 (symbol 'a2') |
|
211 (kindpat |
|
212 (symbol 'path') |
|
213 (symbol 'b1'))) |
|
214 * matcher: |
|
215 <patternmatcher patterns='(?:a1$|a2$|b1(?:/|$))'> |
|
216 a1 |
|
217 a2 |
|
218 b1 |
|
219 |
206 OR expression should be reordered by weight: |
220 OR expression should be reordered by weight: |
207 |
221 |
208 $ fileset -p optimized -s -r. 'grep("a") or a1 or grep("b") or b2' |
222 $ fileset -p optimized -s -r. 'grep("a") or a1 or grep("b") or b2' |
209 * optimized: |
223 * optimized: |
210 (or |
224 (or |
211 (symbol 'a1') |
225 (patterns |
212 (symbol 'b2') |
226 (symbol 'a1') |
|
227 (symbol 'b2')) |
213 (func |
228 (func |
214 (symbol 'grep') |
229 (symbol 'grep') |
215 (string 'a')) |
230 (string 'a')) |
216 (func |
231 (func |
217 (symbol 'grep') |
232 (symbol 'grep') |
218 (string 'b'))) |
233 (string 'b'))) |
219 * matcher: |
234 * matcher: |
220 <unionmatcher matchers=[ |
235 <unionmatcher matchers=[ |
221 <patternmatcher patterns='(?:a1$)'>, |
236 <patternmatcher patterns='(?:a1$|b2$)'>, |
222 <patternmatcher patterns='(?:b2$)'>, |
|
223 <predicatenmatcher pred=grep('a')>, |
237 <predicatenmatcher pred=grep('a')>, |
224 <predicatenmatcher pred=grep('b')>]> |
238 <predicatenmatcher pred=grep('b')>]> |
225 a1 |
239 a1 |
226 a2 |
240 a2 |
227 b1 |
241 b1 |