()
| 15 | ) |
| 16 | |
| 17 | func (p *Parser) ParseValue() (ast.Value, error) { |
| 18 | v, err := p.matchValue() |
| 19 | if err == io.EOF { |
| 20 | err = nil |
| 21 | } |
| 22 | if v == nil && err == nil { |
| 23 | if err := p.lexer.check(1); err != nil && err != io.EOF { |
| 24 | return nil, fmt.Errorf("line %d: %w", p.lexer.line, err) |
| 25 | } |
| 26 | if len(p.lexer.cursor) > 0 { |
| 27 | return nil, fmt.Errorf("line %d: syntax error", p.lexer.line) |
| 28 | } |
| 29 | } |
| 30 | return v, err |
| 31 | } |
| 32 | |
| 33 | func noEOF(err error) error { |
| 34 | if err == io.EOF { |