github.com/mem/u-root@v2.0.1-0.20181004165302-9b18b4636a33+incompatible/cmds/elvish/eval/re/match.go (about) 1 package re 2 3 import ( 4 "strconv" 5 6 "github.com/u-root/u-root/cmds/elvish/eval/vals" 7 "github.com/xiaq/persistent/vector" 8 ) 9 10 var ( 11 matchDescriptor = vals.NewStructDescriptor("text", "start", "end", "groups") 12 submatchDescriptor = vals.NewStructDescriptor("text", "start", "end") 13 ) 14 15 func newMatch(text string, start, end int, groups vector.Vector) *vals.Struct { 16 return vals.NewStruct(matchDescriptor, []interface{}{ 17 text, strconv.Itoa(start), strconv.Itoa(end), groups, 18 }) 19 } 20 21 func newSubmatch(text string, start, end int) *vals.Struct { 22 return vals.NewStruct(submatchDescriptor, []interface{}{ 23 string(text), 24 string(strconv.Itoa(start)), 25 string(strconv.Itoa(end))}) 26 }