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  }