in parse/parse.go [132:165]
func (p *flagParser) parse() (interface{}, error) {
var values []interface{}
for {
// Enable building arrays when commas separate top level elements by default.
stopSet := toplevelStopSet
if p.cfg.IgnoreCommas {
stopSet = ""
}
v, err := p.parseValue(stopSet)
if err != nil {
return nil, err
}
values = append(values, v)
p.ignoreWhitespace()
if p.input == "" {
break
}
if err := p.expectChar(','); err != nil {
return nil, err
}
}
switch len(values) {
case 0:
return nil, nil
case 1:
return values[0], nil
}
return values, nil
}