topLevelSegments is the target of this parser.
()
| 119 | |
| 120 | // topLevelSegments is the target of this parser. |
| 121 | func (p *parser) topLevelSegments() ([]segment, error) { |
| 122 | if _, err := p.accept(typeEOF); err == nil { |
| 123 | p.tokens = p.tokens[:0] |
| 124 | return []segment{literal(eof)}, nil |
| 125 | } |
| 126 | segs, err := p.segments() |
| 127 | if err != nil { |
| 128 | return nil, err |
| 129 | } |
| 130 | if _, err := p.accept(typeEOF); err != nil { |
| 131 | return nil, fmt.Errorf("unexpected token %q after segments %q", p.tokens[0], strings.Join(p.accepted, "")) |
| 132 | } |
| 133 | return segs, nil |
| 134 | } |
| 135 | |
| 136 | func (p *parser) segments() ([]segment, error) { |
| 137 | s, err := p.segment() |