diff options
-rw-r--r-- | src/ChangeLog | 4 | ||||
-rw-r--r-- | src/boot/ast.boot | 1 | ||||
-rw-r--r-- | src/boot/strap/ast.clisp | 1 |
3 files changed, 6 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 62f08a88..a6e5f0a6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2011-07-14 Gabriel Dos Reis <gdr@cs.tamu.edu> + + * boot/ast.boot (bfIS1): Tidy test for cons cells. + 2011-07-13 Gabriel Dos Reis <gdr@cs.tamu.edu> * interp/functor.boot (CategoryPrint): Move from category.boot. diff --git a/src/boot/ast.boot b/src/boot/ast.boot index 190fc926..1af82d64 100644 --- a/src/boot/ast.boot +++ b/src/boot/ast.boot @@ -677,6 +677,7 @@ bfIS1(lhs,rhs) == rhs is ['CONS,a,b] => a is "DOT" => b = nil => bfAND [['CONSP,lhs],['NULL,['CDR,lhs]]] + b is "DOT" => ['CONSP,lhs] bfAND [['CONSP,lhs],bfIS1(['CDR,lhs],b)] b = nil => bfAND [['CONSP,lhs],['NULL,['CDR,lhs]],bfIS1(['CAR,lhs],a)] diff --git a/src/boot/strap/ast.clisp b/src/boot/strap/ast.clisp index 33bfc335..8a8a75d7 100644 --- a/src/boot/strap/ast.clisp +++ b/src/boot/strap/ast.clisp @@ -1083,6 +1083,7 @@ ((NULL |b|) (|bfAND| (LIST (LIST 'CONSP |lhs|) (LIST 'NULL (LIST 'CDR |lhs|))))) + ((EQ |b| 'DOT) (LIST 'CONSP |lhs|)) (T (|bfAND| (LIST (LIST 'CONSP |lhs|) (|bfIS1| (LIST 'CDR |lhs|) |b|)))))) ((NULL |b|) |