aboutsummaryrefslogtreecommitdiff
path: root/src/boot/strap/utility.clisp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-04-19 13:18:04 +0000
committerdos-reis <gdr@axiomatics.org>2011-04-19 13:18:04 +0000
commitb893a938b4051bc30a9c44bdcf6000bff11969c4 (patch)
treee015989876cff9b1b185cc00a55bfc92be277961 /src/boot/strap/utility.clisp
parentc6179efd4a1f1770d4d31415582eabebbe2ab6a0 (diff)
downloadopen-axiom-b893a938b4051bc30a9c44bdcf6000bff11969c4.tar.gz
* interp/newfort.boot: Likewise.
* interp/define.boot (orderBySubsumption): Fix thinko. * interp/boot-pkg.lisp: Use BOOTTRAN package. Don't import names individually. * boot/utility.boot: New. * boot/translator.boot (exportNames): Fix thinko. * boot/tokens.boot: Add charEq? and scalarEq? builtiin functions. * boot/ast.boot (bfMember): Generate call to symbolMember? for membership tests for symbols.
Diffstat (limited to 'src/boot/strap/utility.clisp')
-rw-r--r--src/boot/strap/utility.clisp44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/boot/strap/utility.clisp b/src/boot/strap/utility.clisp
new file mode 100644
index 00000000..efb7cf0e
--- /dev/null
+++ b/src/boot/strap/utility.clisp
@@ -0,0 +1,44 @@
+(PROCLAIM '(OPTIMIZE SPEED))
+(IMPORT-MODULE "initial-env")
+
+(IN-PACKAGE "BOOTTRAN")
+
+(PROVIDE "utility")
+
+(EXPORT '(|objectMember?| |symbolMember?| |stringMember?| |charMember?|
+ |scalarMember?|))
+
+(DEFUN |objectMember?| (|x| |l|)
+ (COND
+ ((CONSP |l|)
+ (OR (EQ |x| (CAR |l|)) (|objectMember?| |x| (CDR |l|))))
+ (T (EQ |x| |l|))))
+
+(DEFUN |symbolMember?| (|x| |l|)
+ (COND
+ ((NULL |l|) NIL)
+ ((CONSP |l|)
+ (OR (EQ |x| (CAR |l|)) (|symbolMember?| |x| (CDR |l|))))
+ (T (EQ |x| |l|))))
+
+(DEFUN |stringMember?| (|s| |l|)
+ (COND
+ ((NULL |l|) NIL)
+ ((CONSP |l|)
+ (OR (STRING= |s| (CAR |l|)) (|stringMember?| |s| (CDR |l|))))
+ (T (STRING= |s| |l|))))
+
+(DEFUN |charMember?| (|x| |l|)
+ (COND
+ ((NULL |l|) NIL)
+ ((CONSP |l|)
+ (OR (CHAR= |x| (CAR |l|)) (|charMember?| |x| (CDR |l|))))
+ (T (CHAR= |x| |l|))))
+
+(DEFUN |scalarMember?| (|x| |l|)
+ (COND
+ ((NULL |l|) NIL)
+ ((CONSP |l|)
+ (OR (EQL |x| (CAR |l|)) (|scalarMember?| |x| (CDR |l|))))
+ (T (EQL |x| |l|))))
+