in cmd/csv2cpe/csv2cpe.go [255:290]
func NewIntSetFromString(s ...string) (IntSet, error) {
var err error
islice := make([]int, 0, len(s))
for _, str := range s {
var start, end int
p := strings.SplitN(str, "-", 2)
if len(p) == 2 && p[1] != "" {
end, err = strconv.Atoi(p[1])
if err != nil {
return nil, fmt.Errorf("failed to parse range %q: %v", str, err)
}
}
start, err = strconv.Atoi(p[0])
if err != nil {
return nil, fmt.Errorf("failed to parse int: %q: %v", str, err)
}
if end == 0 {
islice = append(islice, start)
continue
}
if end <= start {
return nil, fmt.Errorf("range end <= start: %q (%d <= %d)", str, end, start)
}
for i := start; i <= end; i++ {
islice = append(islice, i)
}
}
return NewIntSet(islice...), nil
}