(item)
| 57353 | } |
| 57354 | |
| 57355 | function processTerm(item) { |
| 57356 | switch (item.type) { |
| 57357 | case 'dot': |
| 57358 | update(item, (unicode ? DOT_SET_UNICODE : DOT_SET).toString()); |
| 57359 | break; |
| 57360 | case 'characterClass': |
| 57361 | item = processCharacterClass(item); |
| 57362 | break; |
| 57363 | case 'characterClassEscape': |
| 57364 | update(item, getCharacterClassEscapeSet(item.value).toString()); |
| 57365 | break; |
| 57366 | case 'alternative': |
| 57367 | case 'disjunction': |
| 57368 | case 'group': |
| 57369 | case 'quantifier': |
| 57370 | item.body = item.body.map(processTerm); |
| 57371 | break; |
| 57372 | case 'value': |
| 57373 | var codePoint = item.codePoint; |
| 57374 | var set = regenerate(codePoint); |
| 57375 | if (ignoreCase && unicode) { |
| 57376 | var folded = caseFold(codePoint); |
| 57377 | if (folded) { |
| 57378 | set.add(folded); |
| 57379 | } |
| 57380 | } |
| 57381 | update(item, set.toString()); |
| 57382 | break; |
| 57383 | case 'anchor': |
| 57384 | case 'empty': |
| 57385 | case 'group': |
| 57386 | case 'reference': |
| 57387 | // Nothing to do here. |
| 57388 | break; |
| 57389 | // The `default` clause is only here as a safeguard; it should never be |
| 57390 | // reached. Code coverage tools should ignore it. |
| 57391 | /* istanbul ignore next */ |
| 57392 | default: |
| 57393 | throw Error('Unknown term type: ' + item.type); |
| 57394 | } |
| 57395 | return item; |
| 57396 | }; |
| 57397 | |
| 57398 | module.exports = function (pattern, flags) { |
| 57399 | var tree = parse(pattern, flags); |
no test coverage detected