aboutsummaryrefslogtreecommitdiff
path: root/src/boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot')
-rw-r--r--src/boot/strap/tokens.clisp2
-rw-r--r--src/boot/tokens.boot1
-rw-r--r--src/boot/utility.boot7
3 files changed, 7 insertions, 3 deletions
diff --git a/src/boot/strap/tokens.clisp b/src/boot/strap/tokens.clisp
index 02bf998e..4696f676 100644
--- a/src/boot/strap/tokens.clisp
+++ b/src/boot/strap/tokens.clisp
@@ -182,7 +182,7 @@
(LIST '|charUpcase| 'CHAR-UPCASE) (LIST '|charString| 'STRING)
(LIST '|char?| 'CHARACTERP) (LIST '|codePoint| 'CHAR-CODE)
(LIST '|cons?| 'CONSP) (LIST '|copy| 'COPY)
- (LIST '|copyString| 'COPY-SEQ) (LIST '|copyTree| 'COPY-TREE)
+ (LIST '|copyString| 'COPY-SEQ)
(LIST '|copyVector| 'COPY-SEQ) (LIST '|croak| 'CROAK)
(LIST '|digit?| 'DIGIT-CHAR-P) (LIST '|drop| 'DROP)
(LIST '|exit| 'EXIT) (LIST '|false| 'NIL) (LIST '|fifth| 'FIFTH)
diff --git a/src/boot/tokens.boot b/src/boot/tokens.boot
index 7869bdb0..663f1301 100644
--- a/src/boot/tokens.boot
+++ b/src/boot/tokens.boot
@@ -253,7 +253,6 @@ for i in [ _
["cons?", "CONSP"] , _
["copy", "COPY"] , _
["copyString", "COPY-SEQ"] , _
- ["copyTree", "COPY-TREE"] , _
["copyVector", "COPY-SEQ"] , _
["croak", "CROAK"] , _
["digit?", "DIGIT-CHAR-P"] , _
diff --git a/src/boot/utility.boot b/src/boot/utility.boot
index 70802e5a..139e98d0 100644
--- a/src/boot/utility.boot
+++ b/src/boot/utility.boot
@@ -48,7 +48,7 @@ module utility (objectMember?, symbolMember?, stringMember?,
lastNode, append, append!, copyList, substitute, substitute!,
setDifference, setUnion, setIntersection,
symbolAssoc, applySubst, applySubst!, applySubstNQ, objectAssoc,
- remove,removeSymbol,atomic?,finishLine) where
+ remove,removeSymbol,atomic?,copyTree,finishLine) where
substitute: (%Thing,%Thing,%Thing) -> %Thing
substitute!: (%Thing,%Thing,%Thing) -> %Thing
append: (%List %Thing,%List %Thing) -> %List %Thing
@@ -63,6 +63,7 @@ module utility (objectMember?, symbolMember?, stringMember?,
setUnion: (%List %Thing,%List %Thing) -> %List %Thing
setIntersection: (%List %Thing,%List %Thing) -> %List %Thing
atomic?: %Thing -> %Boolean
+ copyTree: %Thing -> %Thing
finishLine: %Thing -> %Void
--FIXME: Next signature commented out because of GCL bugs
-- firstNonblankPosition: (%String,%Short) -> %Maybe %Short
@@ -76,6 +77,10 @@ module utility (objectMember?, symbolMember?, stringMember?,
atomic? x ==
x isnt [.,:.] or x.op is 'QUOTE
+copyTree t ==
+ t is [.,:.] => [copyTree first t,:copyTree rest t]
+ t
+
--% membership operators
objectMember?(x,l) ==