aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog4
-rw-r--r--src/boot/ast.boot5
-rw-r--r--src/boot/strap/ast.clisp7
3 files changed, 12 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 67c2e3a9..9dba7e32 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2010-12-12 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * boot/ast.boot (bfIS1): Tidy.
+
2010-12-11 Gabriel Dos Reis <gdr@cs.tamu.edu>
* interp/i-syscmd.boot: Use try-finally expression instead of Lisp
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index ed2ff3bc..9e1882dd 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -640,10 +640,11 @@ bfISReverse(x,a) ==
bfIS1(lhs,rhs) ==
rhs = nil => ['NULL,lhs]
string? rhs => ['EQ,lhs,['QUOTE,INTERN rhs]]
- NUMBERP rhs => ["EQUAL",lhs,rhs]
+ integer? rhs => ['EQL,lhs,rhs]
atom rhs => ['PROGN,bfLetForm(rhs,lhs),'T]
rhs is ['QUOTE,a] =>
- IDENTP a => ['EQ,lhs,rhs]
+ symbol? a => ['EQ,lhs,rhs]
+ string? a => bfAND [['STRINGP,lhs],["STRING=",lhs,a]]
["EQUAL",lhs,rhs]
rhs is ['L%T,c,d] =>
l := bfLET(c,lhs)
diff --git a/src/boot/strap/ast.clisp b/src/boot/strap/ast.clisp
index 8511e03e..023496b2 100644
--- a/src/boot/strap/ast.clisp
+++ b/src/boot/strap/ast.clisp
@@ -957,7 +957,7 @@
(COND
((NULL |rhs|) (LIST 'NULL |lhs|))
((STRINGP |rhs|) (LIST 'EQ |lhs| (LIST 'QUOTE (INTERN |rhs|))))
- ((NUMBERP |rhs|) (LIST 'EQUAL |lhs| |rhs|))
+ ((INTEGERP |rhs|) (LIST 'EQL |lhs| |rhs|))
((ATOM |rhs|) (LIST 'PROGN (|bfLetForm| |rhs| |lhs|) 'T))
((AND (CONSP |rhs|) (EQ (CAR |rhs|) 'QUOTE)
(PROGN
@@ -965,7 +965,10 @@
(AND (CONSP |ISTMP#1|) (NULL (CDR |ISTMP#1|))
(PROGN (SETQ |a| (CAR |ISTMP#1|)) T))))
(COND
- ((IDENTP |a|) (LIST 'EQ |lhs| |rhs|))
+ ((SYMBOLP |a|) (LIST 'EQ |lhs| |rhs|))
+ ((STRINGP |a|)
+ (|bfAND| (LIST (LIST 'STRINGP |lhs|)
+ (LIST 'STRING= |lhs| |a|))))
(T (LIST 'EQUAL |lhs| |rhs|))))
((AND (CONSP |rhs|) (EQ (CAR |rhs|) 'L%T)
(PROGN