aboutsummaryrefslogtreecommitdiff
path: root/ps
diff options
context:
space:
mode:
Diffstat (limited to 'ps')
-rw-r--r--ps/step5_tco.ps4
-rw-r--r--ps/step6_file.ps4
-rw-r--r--ps/step7_quote.ps8
-rw-r--r--ps/step8_macros.ps8
-rw-r--r--ps/step9_interop.ps8
-rw-r--r--ps/stepA_more.ps8
6 files changed, 30 insertions, 10 deletions
diff --git a/ps/step5_tco.ps b/ps/step5_tco.ps
index c1698d6..83fd43b 100644
--- a/ps/step5_tco.ps
+++ b/ps/step5_tco.ps
@@ -65,7 +65,9 @@ end } def
env_set
pop % discard the return value
} for
- a2 let_env EVAL
+ a2
+ let_env
+ /loop? true def % loop
}{ /do a0 eq { %if do
ast _count 2 gt { %if ast has more than 2 elements
ast 1 ast _count 2 sub _slice env eval_ast pop
diff --git a/ps/step6_file.ps b/ps/step6_file.ps
index 00598be..7d1c876 100644
--- a/ps/step6_file.ps
+++ b/ps/step6_file.ps
@@ -65,7 +65,9 @@ end } def
env_set
pop % discard the return value
} for
- a2 let_env EVAL
+ a2
+ let_env
+ /loop? true def % loop
}{ /do a0 eq { %if do
ast _count 2 gt { %if ast has more than 2 elements
ast 1 ast _count 2 sub _slice env eval_ast pop
diff --git a/ps/step7_quote.ps b/ps/step7_quote.ps
index 10c8089..d7340fd 100644
--- a/ps/step7_quote.ps
+++ b/ps/step7_quote.ps
@@ -93,11 +93,15 @@ end } def
env_set
pop % discard the return value
} for
- a2 let_env EVAL
+ a2
+ let_env
+ /loop? true def % loop
}{ /quote a0 eq { %if quote
ast 1 _nth
}{ /quasiquote a0 eq { %if quasiquote
- ast 1 _nth quasiquote env EVAL
+ ast 1 _nth quasiquote
+ env
+ /loop? true def % loop
}{ /do a0 eq { %if do
ast _count 2 gt { %if ast has more than 2 elements
ast 1 ast _count 2 sub _slice env eval_ast pop
diff --git a/ps/step8_macros.ps b/ps/step8_macros.ps
index 74cf50f..3bf304c 100644
--- a/ps/step8_macros.ps
+++ b/ps/step8_macros.ps
@@ -126,11 +126,15 @@ end } def
env_set
pop % discard the return value
} for
- a2 let_env EVAL
+ a2
+ let_env
+ /loop? true def % loop
}{ /quote a0 eq { %if quote
ast 1 _nth
}{ /quasiquote a0 eq { %if quasiquote
- ast 1 _nth quasiquote env EVAL
+ ast 1 _nth quasiquote
+ env
+ /loop? true def % loop
}{ /defmacro! a0 eq { %if defmacro!
/a1 ast 1 _nth def
/a2 ast 2 _nth def
diff --git a/ps/step9_interop.ps b/ps/step9_interop.ps
index 4f324d5..de3d2af 100644
--- a/ps/step9_interop.ps
+++ b/ps/step9_interop.ps
@@ -126,11 +126,15 @@ end } def
env_set
pop % discard the return value
} for
- a2 let_env EVAL
+ a2
+ let_env
+ /loop? true def % loop
}{ /quote a0 eq { %if quote
ast 1 _nth
}{ /quasiquote a0 eq { %if quasiquote
- ast 1 _nth quasiquote env EVAL
+ ast 1 _nth quasiquote
+ env
+ /loop? true def % loop
}{ /defmacro! a0 eq { %if defmacro!
/a1 ast 1 _nth def
/a2 ast 2 _nth def
diff --git a/ps/stepA_more.ps b/ps/stepA_more.ps
index 744a092..76d0a86 100644
--- a/ps/stepA_more.ps
+++ b/ps/stepA_more.ps
@@ -126,11 +126,15 @@ end } def
env_set
pop % discard the return value
} for
- a2 let_env EVAL
+ a2
+ let_env
+ /loop? true def % loop
}{ /quote a0 eq { %if quote
ast 1 _nth
}{ /quasiquote a0 eq { %if quasiquote
- ast 1 _nth quasiquote env EVAL
+ ast 1 _nth quasiquote
+ env
+ /loop? true def % loop
}{ /defmacro! a0 eq { %if defmacro!
/a1 ast 1 _nth def
/a2 ast 2 _nth def