Use new function signatures (with preferLongest)

implementPCREMatchingRules
Aadhavan Srinivasan 4 weeks ago
parent 9e12f9dcb3
commit 1f5a363539

@ -133,7 +133,7 @@ func resetThreadsHelper(state *nfaState, visitedMap map[*nfaState]bool) {
// Checks if the given state's assertion is true. Returns true if the given // Checks if the given state's assertion is true. Returns true if the given
// state doesn't have an assertion. // state doesn't have an assertion.
func (s nfaState) checkAssertion(str []rune, idx int) bool { func (s nfaState) checkAssertion(str []rune, idx int, preferLongest bool) bool {
if s.assert == alwaysTrueAssert { if s.assert == alwaysTrueAssert {
return true return true
} }
@ -183,7 +183,7 @@ func (s nfaState) checkAssertion(str []rune, idx int) bool {
strToMatch = string(runesToMatch) strToMatch = string(runesToMatch)
} }
regComp := Reg{startState, s.lookaroundNumCaptureGroups, s.lookaroundRegex} regComp := Reg{startState, s.lookaroundNumCaptureGroups, s.lookaroundRegex, preferLongest}
matchIndices := regComp.FindAll(strToMatch) matchIndices := regComp.FindAll(strToMatch)
numMatchesFound := 0 numMatchesFound := 0
@ -210,9 +210,9 @@ func (s nfaState) checkAssertion(str []rune, idx int) bool {
} }
// Returns true if the contents of 's' contain the value at the given index of the given string // Returns true if the contents of 's' contain the value at the given index of the given string
func (s nfaState) contentContains(str []rune, idx int) bool { func (s nfaState) contentContains(str []rune, idx int, preferLongest bool) bool {
if s.assert != noneAssert { if s.assert != noneAssert {
return s.checkAssertion(str, idx) return s.checkAssertion(str, idx, preferLongest)
} }
if idx >= len(str) { if idx >= len(str) {
return false return false

Loading…
Cancel
Save