diff options
Diffstat (limited to 'subex')
| -rw-r--r-- | subex/main.go | 4 | ||||
| -rw-r--r-- | subex/subexstate.go | 10 | 
2 files changed, 7 insertions, 7 deletions
| diff --git a/subex/main.go b/subex/main.go index e53a3c6..138de9a 100644 --- a/subex/main.go +++ b/subex/main.go @@ -66,7 +66,7 @@ type SubexBranch struct {  func (pair SubexBranch) eat(char walk.Datum) []SubexBranch {  	states := pair.state.eat(pair.store, char)  	for i := range states { -		states[i].output = append(pair.output, states[i].output...) +		states[i].output = walk.ConcatData(pair.output, states[i].output)  	}  	return states  } @@ -110,7 +110,7 @@ func RunTransducer(transducer SubexState, input <-chan walk.Datum) (output []wal  	for _, state := range states {  		outputEnds := state.accepting()  		for _, outputEnd := range outputEnds { -			return append(state.output, outputEnd...), false +			return walk.ConcatData(state.output, outputEnd), false  		}  	}  	return nil, true diff --git a/subex/subexstate.go b/subex/subexstate.go index 9e0d61a..415714f 100644 --- a/subex/subexstate.go +++ b/subex/subexstate.go @@ -35,7 +35,7 @@ type SubexStoreState struct {  func (state SubexStoreState) eat(store Store, char walk.Datum) (nextStates []SubexBranch) {  	acceptedOutputs := state.match.accepting(store)  	for _, acceptedOutput := range acceptedOutputs { -		nextStore := store.withValue(state.slot, append(state.toStore, acceptedOutput...)) +		nextStore := store.withValue(state.slot, walk.ConcatData(state.toStore, acceptedOutput))  		nextStates = append(nextStates, state.next.eat(nextStore.clone(), char)...)  	}  	nextMatchStates := state.match.eat(store.clone(), char) @@ -45,7 +45,7 @@ func (state SubexStoreState) eat(store Store, char walk.Datum) (nextStates []Sub  				match: matchState.state,  				slot: state.slot,  				next: state.next, -				toStore: append(state.toStore, matchState.output...), +				toStore: walk.ConcatData(state.toStore, matchState.output),  			},  			output: nil,  			store: store.clone(), @@ -56,7 +56,7 @@ func (state SubexStoreState) eat(store Store, char walk.Datum) (nextStates []Sub  func (state SubexStoreState) accepting(store Store) (outputs [][]walk.Datum) {  	acceptedOutputs := state.match.accepting(store)  	for _, acceptedOutput := range acceptedOutputs { -		nextStore := store.withValue(state.slot, append(state.toStore, acceptedOutput...)) +		nextStore := store.withValue(state.slot, walk.ConcatData(state.toStore, acceptedOutput))  		outputs = append(outputs, state.next.accepting(nextStore)...)  	}  	return outputs @@ -79,7 +79,7 @@ func (state SubexOutputState) eat(store Store, char walk.Datum) []SubexBranch {  	content := state.build(store)  	nextStates := state.next.eat(store, char)  	for i := range nextStates { -		nextStates[i].output = append(content, nextStates[i].output...) +		nextStates[i].output = walk.ConcatData(content, nextStates[i].output)  	}  	return nextStates  } @@ -87,7 +87,7 @@ func (state SubexOutputState) accepting(store Store) [][]walk.Datum {  	content := state.build(store)  	outputs := state.next.accepting(store)  	for i := range outputs { -		outputs[i] = append(content, outputs[i]...) +		outputs[i] = walk.ConcatData(content, outputs[i])  	}  	return outputs  } | 
