aboutsummaryrefslogtreecommitdiff
path: root/spec/parser.go
diff options
context:
space:
mode:
Diffstat (limited to 'spec/parser.go')
-rw-r--r--spec/parser.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/spec/parser.go b/spec/parser.go
index 4773da6..29248f4 100644
--- a/spec/parser.go
+++ b/spec/parser.go
@@ -76,6 +76,14 @@ func raiseSyntaxError(row int, synErr *SyntaxError) {
})
}
+func raiseSyntaxErrorWithDetail(row int, synErr *SyntaxError, detail string) {
+ panic(&verr.SpecError{
+ Cause: synErr,
+ Detail: detail,
+ Row: row,
+ })
+}
+
func Parse(src io.Reader) (*RootNode, error) {
p, err := newParser(src)
if err != nil {
@@ -426,7 +434,7 @@ func (p *parser) consume(expected tokenKind) bool {
}
p.pos = tok.pos
if tok.kind == tokenKindInvalid {
- raiseSyntaxError(p.pos.Row, synErrInvalidToken)
+ raiseSyntaxErrorWithDetail(p.pos.Row, synErrInvalidToken, tok.text)
}
if tok.kind == expected {
p.lastTok = tok