diff options
author | Andy Wingo <wingo@pobox.com> | 2010-11-18 13:03:49 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2010-11-18 13:03:49 +0100 |
commit | 96fa68966d1290a55100eedcb94f6f922f3b4cb1 (patch) | |
tree | 5f4b04b4e1de966582fed8c7ae32175e24224cf2 /module/language/ecmascript/parse.scm | |
parent | b8b63433182674b3d7de4d52073b3243c9355146 (diff) | |
download | guile-96fa68966d1290a55100eedcb94f6f922f3b4cb1.tar.gz |
better errors for ecmascript parser too
* module/language/ecmascript/parse.scm (syntax-error): Better errors
here too.
Diffstat (limited to 'module/language/ecmascript/parse.scm')
-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))) |