diff options
Diffstat (limited to 'ps')
| -rw-r--r-- | ps/Makefile | 2 | ||||
| -rw-r--r-- | ps/interop.ps | 4 | ||||
| -rw-r--r-- | ps/stepA_mal.ps (renamed from ps/stepA_interop.ps) | 0 | ||||
| -rw-r--r-- | ps/tests/stepA_mal.mal | 23 |
4 files changed, 26 insertions, 3 deletions
diff --git a/ps/Makefile b/ps/Makefile index 26056a6..9131674 100644 --- a/ps/Makefile +++ b/ps/Makefile @@ -2,7 +2,7 @@ TESTS = SOURCES_BASE = types.ps reader.ps printer.ps -SOURCES_LISP = env.ps core.ps stepA_interop.ps +SOURCES_LISP = env.ps core.ps stepA_mal.ps SOURCES = $(SOURCES_BASE) $(SOURCES_LISP) .PHONY: stats tests $(TESTS) diff --git a/ps/interop.ps b/ps/interop.ps index fb3b88d..8020ab0 100644 --- a/ps/interop.ps +++ b/ps/interop.ps @@ -1,6 +1,6 @@ -% ps_val -> ps2mal -> mal_val +% [ ps_val1...] -> ps2mal -> [ mal_val1...] /ps2mal { - % convert a PS value to a Mal value (recursively) + % convert returned values to Mal types [ exch { %forall returned values dup == diff --git a/ps/stepA_interop.ps b/ps/stepA_mal.ps index c879294..c879294 100644 --- a/ps/stepA_interop.ps +++ b/ps/stepA_mal.ps diff --git a/ps/tests/stepA_mal.mal b/ps/tests/stepA_mal.mal new file mode 100644 index 0000000..fffa178 --- /dev/null +++ b/ps/tests/stepA_mal.mal @@ -0,0 +1,23 @@ +;; Testing basic ps interop + +(ps* "7") +;=>(7) + +(ps* "(7)") +;=>("7") + +(ps* "7 8 9 3 array astore") +;=>((7 8 9)) + +(ps* "1 1 eq") +;=>(true) + +(ps* "/sym") +;=>sym + +(ps* "1 1 eq { (yep) }{ (nope) } ifelse") +;=>("yep") + +(ps* "1 0 eq { (yep) }{ (nope) } ifelse") +;=>("nope") + |
