diff options
Diffstat (limited to 'subex')
| -rw-r--r-- | subex/main.go | 5 | 
1 files changed, 4 insertions, 1 deletions
| diff --git a/subex/main.go b/subex/main.go index 638e0f5..ebd87cb 100644 --- a/subex/main.go +++ b/subex/main.go @@ -131,12 +131,15 @@ func RunTransducer(transducer Transducer, input []walk.Atom) (output []walk.Atom  		},  		store: make([][]walk.Atom, transducer.storeSize),  	}} +	var tmp []SubexBranch +	newStates := make([]SubexBranch, 0, 2)  	for _, piece := range input { -		var newStates []SubexBranch  		for _, state := range states {  			newStates = append(newStates, state.eat(piece)...)  		} +		tmp = states  		states = pruneStates(newStates) +		newStates = tmp[:0]  		if len(states) == 0 {  			return nil, true  		} | 
