func()

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
}