Add adds an NFA state to the set
(state nfa.StateID)
| 429 | |
| 430 | // Add adds an NFA state to the set |
| 431 | func (ss *StateSet) Add(state nfa.StateID) { |
| 432 | // Grow if needed |
| 433 | if int(state) >= len(ss.sparse) { |
| 434 | ss.grow(int(state) + 1) |
| 435 | } |
| 436 | if ss.Contains(state) { |
| 437 | return |
| 438 | } |
| 439 | // Direct assignment (O(1)) |
| 440 | ss.dense[ss.size] = state |
| 441 | ss.sparse[state] = uint32(ss.size) |
| 442 | ss.size++ |
| 443 | } |
| 444 | |
| 445 | // grow expands the capacity to at least newCap |
| 446 | func (ss *StateSet) grow(newCap int) { |