| 25546 | } |
| 25547 | |
| 25548 | func (p *parser) parseLitMatcher(lit *litMatcher) (any, bool) { |
| 25549 | if p.debug { |
| 25550 | defer p.out(p.in("parseLitMatcher")) |
| 25551 | } |
| 25552 | |
| 25553 | start := p.pt |
| 25554 | for _, want := range lit.val { |
| 25555 | cur := p.pt.rn |
| 25556 | if lit.ignoreCase { |
| 25557 | cur = unicode.ToLower(cur) |
| 25558 | } |
| 25559 | if cur != want { |
| 25560 | p.failAt(false, start.position, lit.want) |
| 25561 | p.restore(start) |
| 25562 | return nil, false |
| 25563 | } |
| 25564 | p.read() |
| 25565 | } |
| 25566 | p.failAt(true, start.position, lit.want) |
| 25567 | return p.sliceFrom(start), true |
| 25568 | } |
| 25569 | |
| 25570 | func (p *parser) parseNotCodeExpr(not *notCodeExpr) (any, bool) { |
| 25571 | if p.debug { |