func()

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
}