comparison tests/test-fileset.t @ 38804:d82c4d42b615

fileset: flatten 'or' nodes to unnest unionmatchers This also makes it easier to compile a union of basic patterns into a single regexp pattern.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 21 Jul 2018 15:23:56 +0900
parents 4dc498d61d86
children 4fe8d1f077b8
comparison
equal deleted inserted replaced
38803:4dc498d61d86 38804:d82c4d42b615
157 b2 157 b2
158 158
159 $ fileset -p all -s 'a1 or a2 or (grep("b") & clean())' 159 $ fileset -p all -s 'a1 or a2 or (grep("b") & clean())'
160 * parsed: 160 * parsed:
161 (or 161 (or
162 (or 162 (symbol 'a1')
163 (symbol 'a1') 163 (symbol 'a2')
164 (symbol 'a2'))
165 (group 164 (group
166 (and 165 (and
167 (func 166 (func
168 (symbol 'grep') 167 (symbol 'grep')
169 (string 'b')) 168 (string 'b'))
170 (func 169 (func
171 (symbol 'clean') 170 (symbol 'clean')
172 None)))) 171 None))))
173 * matcher: 172 * matcher:
174 <unionmatcher matchers=[ 173 <unionmatcher matchers=[
175 <unionmatcher matchers=[ 174 <patternmatcher patterns='(?:a1$)'>,
176 <patternmatcher patterns='(?:a1$)'>, 175 <patternmatcher patterns='(?:a2$)'>,
177 <patternmatcher patterns='(?:a2$)'>]>,
178 <intersectionmatcher 176 <intersectionmatcher
179 m1=<predicatenmatcher pred=grep('b')>, 177 m1=<predicatenmatcher pred=grep('b')>,
180 m2=<predicatenmatcher pred=clean>>]> 178 m2=<predicatenmatcher pred=clean>>]>
181 a1 179 a1
182 a2 180 a2