in parse/parse.go [205:247]
func (p *flagParser) parseArray() (interface{}, error) {
p.input = p.input[1:]
var values []interface{}
loop:
for {
p.ignoreWhitespace()
if p.input[0] == ']' {
p.input = p.input[1:]
break
}
v, err := p.parseValue(arrayElemStopSet)
if err != nil {
return nil, err
}
values = append(values, v)
p.ignoreWhitespace()
if p.input == "" {
return nil, errors.New("array closing ']' missing")
}
next := p.input[0]
p.input = p.input[1:]
switch next {
case ']':
break loop
case ',':
continue
default:
return nil, errors.New("array expected ',' or ']'")
}
}
if len(values) == 0 {
return nil, nil
}
return values, nil
}