(p *syntax.Prog, begin, out uint32)
| 145 | } |
| 146 | |
| 147 | func (b *runeBuilder) init(p *syntax.Prog, begin, out uint32) { |
| 148 | // We will rewrite p.Inst[begin] to hold the accumulated |
| 149 | // machine. For now, there is no match. |
| 150 | p.Inst[begin].Op = instFail |
| 151 | |
| 152 | b.begin = begin |
| 153 | b.out = out |
| 154 | if b.cache == nil { |
| 155 | b.cache = make(map[cacheKey]uint32) |
| 156 | } |
| 157 | for k := range b.cache { |
| 158 | delete(b.cache, k) |
| 159 | } |
| 160 | b.p = p |
| 161 | } |
| 162 | |
| 163 | func (b *runeBuilder) uncachedSuffix(lo, hi byte, fold bool, next uint32) uint32 { |
| 164 | if next == 0 { |