regex/nfafindall

Linear time NFA findAll

Types

RegexMatches = object
  a, b: Submatches
  m: Matches
  c: Capts
  look: Lookaround

Procs

func fillMatchImpl(m: var RegexMatch; mi: MatchItemIdx; ms: RegexMatches;
                   regex: Regex) {...}{.inline, raises: [], tags: [].}
func dummyMatch(ms: var RegexMatches; i: int) {...}{.inline, raises: [], tags: [].}
hack to support split last value. we need to add the end boundary if it has not matched the end (no match implies this too)
func findSomeImpl(text: string; regex: Regex; ms: var RegexMatches;
                  start: Natural = 0; flags: set[MatchFlag] = {}): int {...}{.
    raises: [], tags: [RootEffect].}
func findSomeOptImpl(text: string; regex: Regex; ms: var RegexMatches;
                     start: Natural): int {...}{.raises: [], tags: [RootEffect].}

Iterators

iterator bounds(ms: RegexMatches): Slice[int] {...}{.inline, raises: [], tags: [].}
iterator items(ms: RegexMatches): MatchItemIdx {...}{.inline, raises: [], tags: [].}