aboutsummaryrefslogtreecommitdiff
path: root/src/boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot')
-rw-r--r--src/boot/ast.boot8
-rw-r--r--src/boot/strap/ast.clisp11
2 files changed, 9 insertions, 10 deletions
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index 3c921466..0fc4a122 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -641,8 +641,7 @@ bfISReverse(x,a) ==
bfIS1(lhs,rhs) ==
rhs = nil => ['NULL,lhs]
bfString? rhs => bfAND [['STRINGP,lhs],["STRING=",lhs,rhs]]
- bfChar? rhs => bfAND [['CHARACTERP,lhs],["CHAR=",lhs,rhs]]
- integer? rhs => ['EQL,lhs,rhs]
+ bfChar? rhs or integer? rhs => ['EQL,lhs,rhs]
atom rhs => ['PROGN,bfLetForm(rhs,lhs),'T]
rhs is ['QUOTE,a] =>
symbol? a => ['EQ,lhs,rhs]
@@ -745,10 +744,11 @@ defQuoteId x==
x is ["QUOTE",:.] and symbol? second x
bfChar? x ==
- char? x or cons? x and first x in '(char CODE_-CHAR SCHAR)
+ char? x or cons? x and x.op in '(char CODE_-CHAR SCHAR)
bfSmintable x==
- integer? x or cons? x and first x in '(SIZE LENGTH CHAR_-CODE)
+ integer? x or cons? x and
+ x.op in '(SIZE LENGTH CHAR_-CODE MAXINDEX _+ _-)
bfString? x ==
string? x
diff --git a/src/boot/strap/ast.clisp b/src/boot/strap/ast.clisp
index 9468fb13..81ae3841 100644
--- a/src/boot/strap/ast.clisp
+++ b/src/boot/strap/ast.clisp
@@ -907,7 +907,7 @@
CDAAR CDDAR CDADR CDDDR))
(SETQ |p| (|bfPosition| (CAR |expr|) |funs|))
(COND
- ((EQUAL |p| (- 1)) (LIST |acc| |expr|))
+ ((EQL |p| (- 1)) (LIST |acc| |expr|))
(T (SETQ |funsA|
'(CAAR CADR CAAAR CADAR CAADR CADDR CAAAAR CAADAR
CAAADR CAADDR CADAAR CADDAR CADADR CADDDR))
@@ -963,10 +963,8 @@
((|bfString?| |rhs|)
(|bfAND| (LIST (LIST 'STRINGP |lhs|)
(LIST 'STRING= |lhs| |rhs|))))
- ((|bfChar?| |rhs|)
- (|bfAND| (LIST (LIST 'CHARACTERP |lhs|)
- (LIST 'CHAR= |lhs| |rhs|))))
- ((INTEGERP |rhs|) (LIST 'EQL |lhs| |rhs|))
+ ((OR (|bfChar?| |rhs|) (INTEGERP |rhs|))
+ (LIST 'EQL |lhs| |rhs|))
((ATOM |rhs|) (LIST 'PROGN (|bfLetForm| |rhs| |lhs|) 'T))
((AND (CONSP |rhs|) (EQ (CAR |rhs|) 'QUOTE)
(PROGN
@@ -1211,7 +1209,8 @@
(DEFUN |bfSmintable| (|x|)
(OR (INTEGERP |x|)
- (AND (CONSP |x|) (MEMQ (CAR |x|) '(SIZE LENGTH CHAR-CODE)))))
+ (AND (CONSP |x|)
+ (MEMQ (CAR |x|) '(SIZE LENGTH CHAR-CODE MAXINDEX + -)))))
(DEFUN |bfString?| (|x|)
(OR (STRINGP |x|)