Renamed match function to 'findAllMatches', to better represent what it does

master
Aadhavan Srinivasan 2 months ago
parent ce156c4405
commit c894ee4c0d

@ -178,7 +178,7 @@ func main() {
re_postfix := shuntingYard(re) re_postfix := shuntingYard(re)
// fmt.Println(re_postfix) // fmt.Println(re_postfix)
startState := thompson(re_postfix) startState := thompson(re_postfix)
matchIndices := match(startState, os.Args[2]) matchIndices := findAllMatches(startState, os.Args[2])
inColor := false inColor := false
if len(matchIndices) > 0 { if len(matchIndices) > 0 {
for i, c := range os.Args[2] { for i, c := range os.Args[2] {

@ -23,12 +23,12 @@ func takeZeroState(states []*State) (rtv []*State, isZero bool) {
return rtv, false return rtv, false
} }
// match tries to match the regex represented by given start-state, with // findAllMatches tries to findAllMatches the regex represented by given start-state, with
// the given string // the given string
func match(start *State, str string) (indices []matchIndex) { func findAllMatches(start *State, str string) (indices []matchIndex) {
return matchHelper(start, str, make([]matchIndex, 0), 0) return findAllMatchesHelper(start, str, make([]matchIndex, 0), 0)
} }
func matchHelper(start *State, str string, indices []matchIndex, offset int) []matchIndex { func findAllMatchesHelper(start *State, str string, indices []matchIndex, offset int) []matchIndex {
// 'Base case' - exit if string is empty // 'Base case' - exit if string is empty
if len(str) == 0 { if len(str) == 0 {
return indices return indices
@ -86,7 +86,7 @@ func matchHelper(start *State, str string, indices []matchIndex, offset int) []m
if i == startingFrom { if i == startingFrom {
i++ i++
} }
return matchHelper(start, str[i:], indices, offset+i) return findAllMatchesHelper(start, str[i:], indices, offset+i)
} }
currentStates = make([]*State, len(tempStates)) currentStates = make([]*State, len(tempStates))
copy(currentStates, tempStates) copy(currentStates, tempStates)

Loading…
Cancel
Save