aboutsummaryrefslogtreecommitdiff
path: root/bash/step9_interop.sh
diff options
context:
space:
mode:
authorJoel Martin <github@martintribe.org>2014-04-23 21:59:50 -0500
committerJoel Martin <github@martintribe.org>2014-04-23 21:59:50 -0500
commit6301e0b6374cecc5599665be14d6ddc6a31ce1e8 (patch)
treedbf1dc2ff6c682fd87c72a7907e7f6e59c8d4c03 /bash/step9_interop.sh
parent89bd4de1e2704c1bc562788b2c5e4fc08b71a538 (diff)
downloadmal-6301e0b6374cecc5599665be14d6ddc6a31ce1e8.tar.gz
mal-6301e0b6374cecc5599665be14d6ddc6a31ce1e8.zip
All: TCO let* and quasiquote.
Diffstat (limited to 'bash/step9_interop.sh')
-rwxr-xr-xbash/step9_interop.sh11
1 files changed, 7 insertions, 4 deletions
diff --git a/bash/step9_interop.sh b/bash/step9_interop.sh
index 04d3413..5e4828f 100755
--- a/bash/step9_interop.sh
+++ b/bash/step9_interop.sh
@@ -136,15 +136,18 @@ EVAL () {
ENV_SET "${let_env}" "${ANON["${let_pairs[${idx}]}"]}" "${r}"
idx=$(( idx + 2))
done
- EVAL "${a2}" "${let_env}"
- return ;;
+ ast="${a2}"
+ env="${let_env}"
+ # Continue loop
+ ;;
quote)
r="${a1}"
return ;;
quasiquote)
QUASIQUOTE "${a1}"
- EVAL "${r}" "${env}"
- return ;;
+ ast="${r}"
+ # Continue loop
+ ;;
defmacro!)
local k="${ANON["${a1}"]}"
EVAL "${a2}" "${env}"