Use pointers instead of values
This commit is contained in:
@@ -987,7 +987,8 @@ func thompson(re []postfixNode) (Reg, error) {
|
|||||||
if c.nodetype == charclassNode { // A Character class consists of all the nodes in it, alternated
|
if c.nodetype == charclassNode { // A Character class consists of all the nodes in it, alternated
|
||||||
// Map the list of nodes to a list of states, each state containing the contents of a specific node
|
// Map the list of nodes to a list of states, each state containing the contents of a specific node
|
||||||
states := funcMap(c.nodeContents, func(node postfixNode) *nfaState {
|
states := funcMap(c.nodeContents, func(node postfixNode) *nfaState {
|
||||||
s := newState()
|
s := &nfaState{}
|
||||||
|
s.output = append(s.output, s)
|
||||||
nodeContents := node.contents
|
nodeContents := node.contents
|
||||||
if caseInsensitive {
|
if caseInsensitive {
|
||||||
nodeContents = slices.Concat(funcMap(nodeContents, func(r rune) []rune {
|
nodeContents = slices.Concat(funcMap(nodeContents, func(r rune) []rune {
|
||||||
@@ -1001,7 +1002,7 @@ func thompson(re []postfixNode) (Reg, error) {
|
|||||||
return n.contents
|
return n.contents
|
||||||
})...)
|
})...)
|
||||||
}
|
}
|
||||||
return &s
|
return s
|
||||||
})
|
})
|
||||||
// Reduce the list of states down to a single state by alternating them
|
// Reduce the list of states down to a single state by alternating them
|
||||||
toAdd := funcReduce(states, func(s1 *nfaState, s2 *nfaState) *nfaState {
|
toAdd := funcReduce(states, func(s1 *nfaState, s2 *nfaState) *nfaState {
|
||||||
|
Reference in New Issue
Block a user