diff options
-rw-r--r-- | module/language/ecmascript/parse.scm | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/module/language/ecmascript/parse.scm b/module/language/ecmascript/parse.scm index 4c2311798..b8868a39d 100644 --- a/module/language/ecmascript/parse.scm +++ b/module/language/ecmascript/parse.scm @@ -23,8 +23,15 @@ #:use-module (language ecmascript tokenize) #:export (read-ecmascript read-ecmascript/1 make-parser)) -(define (syntax-error message . args) - (throw 'syntax-error 'tokenize #f message #f #f args)) +(define* (syntax-error message #:optional token) + (if (lexical-token? token) + (throw 'syntax-error #f message + (and=> (lexical-token-source token) + source-location->source-properties) + (or (lexical-token-value token) + (lexical-token-category token)) + #f) + (throw 'syntax-error #f message #f token #f))) (define (read-ecmascript port) (let ((parse (make-parser))) |