fxsll was missing an interrupt call.
This commit is contained in:
parent
9eead5327a
commit
53cc48d23c
|
@ -90,25 +90,23 @@
|
||||||
(lambda (c)
|
(lambda (c)
|
||||||
(or (and ($char<= #\a c) ($char<= c #\z))
|
(or (and ($char<= #\a c) ($char<= c #\z))
|
||||||
(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?
|
(define special-initial?
|
||||||
(lambda (c)
|
(lambda (c)
|
||||||
(memq 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?
|
(define special-subsequent?
|
||||||
(lambda (c)
|
(lambda (c)
|
||||||
(memq 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
|
(define tokenize-identifier
|
||||||
(lambda (ls p)
|
(lambda (ls p)
|
||||||
(let ([c (peek-char p)])
|
(let ([c (peek-char p)])
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
1573
|
1574
|
||||||
|
|
|
@ -1560,7 +1560,9 @@
|
||||||
(let f ([i i])
|
(let f ([i i])
|
||||||
(cond
|
(cond
|
||||||
[(zero? i) x]
|
[(zero? i) x]
|
||||||
[else (prm 'sll/overflow (f (- i 1)) (K 1))]))]
|
[else
|
||||||
|
(interrupt)
|
||||||
|
(prm 'sll/overflow (f (- i 1)) (K 1))]))]
|
||||||
[else
|
[else
|
||||||
(with-tmp ([x2 (prm 'sll x (K i))])
|
(with-tmp ([x2 (prm 'sll x (K i))])
|
||||||
(interrupt-unless (prm '= (prm 'sra x2 (K i)) x))
|
(interrupt-unless (prm '= (prm 'sra x2 (K i)) x))
|
||||||
|
|
Loading…
Reference in New Issue