diff options
author | Andy Wingo <wingo@pobox.com> | 2010-11-18 12:24:01 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2010-11-18 12:24:01 +0100 |
commit | a608cad27e43e176d1a6e6d7cb4a53ba3861b308 (patch) | |
tree | e2a6a68d9ac87c313b44c8fb8d9c4f97861eea06 /module/language/ecmascript | |
parent | 29de6ae2e8da0db797fcb808b4d35d07e2b9d5f4 (diff) | |
download | guile-a608cad27e43e176d1a6e6d7cb4a53ba3861b308.tar.gz |
fix ecmascript at the repl
* module/language/ecmascript/tokenize.scm (syntax-error): Reorder args
to throw vals in the right order.
(make-tokenizer/1): Fix. Broken since the lalr refactor...
Diffstat (limited to 'module/language/ecmascript')
-rw-r--r-- | module/language/ecmascript/tokenize.scm | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/module/language/ecmascript/tokenize.scm b/module/language/ecmascript/tokenize.scm index 270a472d3..ab6846c87 100644 --- a/module/language/ecmascript/tokenize.scm +++ b/module/language/ecmascript/tokenize.scm @@ -24,8 +24,8 @@ #:use-module (system base lalr) #:export (next-token make-tokenizer make-tokenizer/1 tokenize tokenize/1)) -(define (syntax-error message . args) - (throw 'syntax-error 'tokenize #f message #f #f args)) +(define (syntax-error what . args) + (throw 'syntax-error 'tokenize what #f #f #f args)) ;; taken from SSAX, sorta (define (read-until delims port) @@ -442,21 +442,24 @@ (let ((tok (next-token port div?))) (case (if (lexical-token? tok) (lexical-token-category tok) tok) ((lparen) - (set! stack (make-lexical-token 'lparen #f stack))) + (set! stack (cons tok stack))) ((rparen) - (if (and (pair? stack) (eq? (car stack) 'lparen)) + (if (and (pair? stack) + (eq? (lexical-token-category (car stack)) 'lparen)) (set! stack (cdr stack)) (syntax-error "unexpected right parenthesis"))) ((lbracket) - (set! stack (make-lexical-token 'lbracket #f stack))) + (set! stack (cons tok stack))) ((rbracket) - (if (and (pair? stack) (eq? (car stack) 'lbracket)) + (if (and (pair? stack) + (eq? (lexical-token-category (car stack)) 'lbracket)) (set! stack (cdr stack)) (syntax-error "unexpected right bracket" stack))) ((lbrace) - (set! stack (make-lexical-token 'lbrace #f stack))) + (set! stack (cons tok stack))) ((rbrace) - (if (and (pair? stack) (eq? (car stack) 'lbrace)) + (if (and (pair? stack) + (eq? (lexical-token-category (car stack)) 'lbrace)) (set! stack (cdr stack)) (syntax-error "unexpected right brace" stack))) ((semicolon) |