aboutsummaryrefslogtreecommitdiff
path: root/src/interp/i-object.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-10-28 10:43:54 +0000
committerdos-reis <gdr@axiomatics.org>2007-10-28 10:43:54 +0000
commit7b0b25d63ed483cc9ccd9525b5904feda65dc807 (patch)
treefd2d98a0ead1cd14865a6e065bcefb93775de970 /src/interp/i-object.boot
parent471d0186fa938e05f69b26dd209544de721de94d (diff)
downloadopen-axiom-7b0b25d63ed483cc9ccd9525b5904feda65dc807.tar.gz
* Makefile.pamphlet (category.$(FASLEXT)): New rule.
(<<category.clisp>>): Remove. * category.boot.pamphlet: Push into package "BOOT". Replace ASSOC with assoc throughout. (mkCategory): Fix syntax. * i-coerce.boot.pamphlet (stripUnionTags): Move to g-util.boot. (isTaggeUnion): Likewise. (getUnionOrRecordTags): Likewise. * i-util.boot.pamphlet (wrap): Move to i-object.boot. (isWrapped): Likewise. (unwrap): Likewise. (wrapped2Quote): Likewise. (quote2Wrapped): Likewise. (removeQuote): Likewise. (TruthP): Move to g-util.boot.
Diffstat (limited to 'src/interp/i-object.boot')
-rw-r--r--src/interp/i-object.boot30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/interp/i-object.boot b/src/interp/i-object.boot
index 2c6515c1..0543e466 100644
--- a/src/interp/i-object.boot
+++ b/src/interp/i-object.boot
@@ -65,7 +65,35 @@ objEnv obj == $NE
objCodeVal obj == CADDR obj
objCodeMode obj == CADR obj
-
+--% Utility Functions Used Only by the Intepreter
+
+wrap x ==
+ isWrapped x => x
+ ['WRAPPED,:x]
+
+isWrapped x == x is ['WRAPPED,:.] or NUMBERP x or FLOATP x or CVECP x
+
+unwrap x ==
+ NUMBERP x or FLOATP x or CVECP x => x
+ x is ["WRAPPED",:y] => y
+ x
+
+wrapped2Quote x ==
+ x is ["WRAPPED",:y] => MKQ y
+ x
+
+quote2Wrapped x ==
+ x is ['QUOTE,y] => wrap y
+ x
+
+removeQuote x ==
+ x is ["QUOTE",y] => y
+ x
+
+-- addQuote x ==
+-- NUMBERP x => x
+-- ['QUOTE,x]
+
--% Library compiler structures needed by the interpreter
-- Tuples and Crosses