aboutsummaryrefslogtreecommitdiff
path: root/src/interp/lisp-backend.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/lisp-backend.boot')
-rw-r--r--src/interp/lisp-backend.boot4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/interp/lisp-backend.boot b/src/interp/lisp-backend.boot
index 6fb119e8..d1fa2d74 100644
--- a/src/interp/lisp-backend.boot
+++ b/src/interp/lisp-backend.boot
@@ -190,6 +190,9 @@ expandList(x is ['%list,:args]) ==
args' = 'failed => ['LIST,:args]
quote args'
+expandArray2List ['%array2list,x] ==
+ ['COERCE,expandToVMForm x,quote 'LIST]
+
expandLeave ['%leave,l,x] ==
x := expandToVMForm x
l = nil => ['RETURN,x]
@@ -672,6 +675,7 @@ for x in [
++ Table of opcode-expander pairs.
for x in [
['%list, :function expandList],
+ ['%array2list, :function expandArray2List],
['%collect, :function expandCollect],
['%repeat, :function expandRepeat],
['%return, :function expandReturn],