diff --git a/nfa.go b/nfa.go index 8b98ee7..9bc9ae9 100644 --- a/nfa.go +++ b/nfa.go @@ -136,7 +136,7 @@ func (s State) checkAssertion(str []rune, idx int) bool { strToMatch = string(runesToMatch) } - matchIndices := findAllMatches(Reg{startState, s.lookaroundNumCaptureGroups}, strToMatch) + matchIndices := FindAllMatches(Reg{startState, s.lookaroundNumCaptureGroups}, strToMatch) numMatchesFound := 0 for _, matchIdx := range matchIndices { @@ -314,3 +314,18 @@ func question(s1 *State) *State { // Use the fact that ab? == a(b|) s3 := alternate(s1, s2) return s3 } + +// Creates and returns a new state with the 'default' values. +func newState() State { + ret := State{ + output: make([]*State, 0), + transitions: make(map[int][]*State), + assert: NONE, + except: append([]rune{}, 0), + lookaroundRegex: "", + groupEnd: false, + groupBegin: false, + } + ret.output = append(ret.output, &ret) + return ret +}