diff options
Diffstat (limited to 'src/boot')
-rw-r--r-- | src/boot/ast.boot | 8 | ||||
-rw-r--r-- | src/boot/strap/ast.clisp | 11 |
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|) |