diff --git a/scheme/ikarus.reader.ss b/scheme/ikarus.reader.ss index 0f5f6a0..34c2c0d 100644 --- a/scheme/ikarus.reader.ss +++ b/scheme/ikarus.reader.ss @@ -90,25 +90,23 @@ (lambda (c) (or (and ($char<= #\a c) ($char<= c #\z)) (and ($char<= #\A c) ($char<= c #\Z))))) - (define af? - (lambda (c) - (or (and ($char<= #\a c) ($char<= c #\f)) - (and ($char<= #\A c) ($char<= c #\F))))) - (define af->num - (lambda (c) - (if (and ($char<= #\a c) ($char<= c #\f)) - (fx+ 10 (fx- ($char->fixnum c) ($char->fixnum #\a))) - (fx+ 10 (fx- ($char->fixnum c) ($char->fixnum #\A)))))) (define special-initial? (lambda (c) (memq c '(#\! #\$ #\% #\& #\* #\/ #\: #\< #\= #\> #\? #\^ #\_ #\~)))) - (define subsequent? - (lambda (c) - (or (initial? c) (digit? c) (special-subsequent? c) - (memq (char-general-category c) '(Nd Mc Me))))) (define special-subsequent? (lambda (c) (memq c '(#\+ #\- #\. #\@)))) + (define subsequent? + (lambda (c) + (cond + [($char<= c ($fixnum->char 127)) + (or (letter? c) + (digit? c) + (special-initial? c) + (special-subsequent? c))] + [else + (or (unicode-printable-char? c) + (memq (char-general-category c) '(Nd Mc Me)))]))) (define tokenize-identifier (lambda (ls p) (let ([c (peek-char p)]) diff --git a/scheme/last-revision b/scheme/last-revision index 3603fbf..6fcfa77 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1573 +1574 diff --git a/scheme/pass-specify-rep-primops.ss b/scheme/pass-specify-rep-primops.ss index 44b1b2a..876e952 100644 --- a/scheme/pass-specify-rep-primops.ss +++ b/scheme/pass-specify-rep-primops.ss @@ -1560,7 +1560,9 @@ (let f ([i i]) (cond [(zero? i) x] - [else (prm 'sll/overflow (f (- i 1)) (K 1))]))] + [else + (interrupt) + (prm 'sll/overflow (f (- i 1)) (K 1))]))] [else (with-tmp ([x2 (prm 'sll x (K i))]) (interrupt-unless (prm '= (prm 'sra x2 (K i)) x))