Commit 8b9d7e9
Split _split_top_level_or into generator + consumer
Pull the state machine out into ``_iter_or_boundaries``, a generator
that yields ``(start, end)`` spans of each top-level ``OR`` separator,
and reduce ``_split_top_level_or`` to a short slice loop over those
spans. Behaviour is unchanged (all 26 existing tests pass); the win
is readability — each function now has one job instead of three, and
the producer/consumer split mirrors how ``re.finditer`` / ``tokenize``
are structured elsewhere in the stdlib.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 5709cd5 commit 8b9d7e9
1 file changed
Lines changed: 23 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
232 | 233 | | |
233 | 234 | | |
234 | 235 | | |
235 | | - | |
236 | | - | |
| 236 | + | |
| 237 | + | |
237 | 238 | | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
242 | 243 | | |
243 | | - | |
244 | 244 | | |
245 | 245 | | |
246 | | - | |
247 | 246 | | |
248 | 247 | | |
249 | 248 | | |
| |||
265 | 264 | | |
266 | 265 | | |
267 | 266 | | |
268 | | - | |
269 | 267 | | |
270 | 268 | | |
271 | 269 | | |
272 | 270 | | |
273 | 271 | | |
274 | 272 | | |
275 | 273 | | |
276 | | - | |
277 | 274 | | |
278 | 275 | | |
279 | 276 | | |
280 | | - | |
| 277 | + | |
281 | 278 | | |
282 | 279 | | |
283 | 280 | | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
284 | 296 | | |
285 | 297 | | |
286 | 298 | | |
| |||
0 commit comments