aboutsummaryrefslogtreecommitdiff
path: root/core/io.nom
diff options
context:
space:
mode:
authorBruce Hill <bitbucket@bruce-hill.com>2018-06-14 22:17:26 -0700
committerBruce Hill <bitbucket@bruce-hill.com>2018-06-14 22:17:37 -0700
commit49f1eb3d08caf7605046373b7b3a001f28aa8aab (patch)
tree2894703fd312bd4202a3cbe225d19a958e2f24b2 /core/io.nom
parent82cfd3e54b5910843c091a9fb6ef3ad6b64ba757 (diff)
Reshuffling some files.
Diffstat (limited to 'core/io.nom')
-rw-r--r--core/io.nom20
1 files changed, 20 insertions, 0 deletions
diff --git a/core/io.nom b/core/io.nom
new file mode 100644
index 0000000..4f12e57
--- /dev/null
+++ b/core/io.nom
@@ -0,0 +1,20 @@
+#
+ This file contains basic input/output code
+
+use "core/metaprogramming.nom"
+
+compile [say %message] to
+ lua> ".."
+ if \%message.type == "Text" then
+ return Lua(tree.source, "io.write(", \(%message as lua expr), ", '\\\\n');");
+ else
+ return Lua(tree.source, "io.write(tostring(", \(%message as lua expr), "), '\\\\n');");
+ end
+
+compile [ask %prompt] to
+ lua> ".."
+ if \%prompt.type == "Text" then
+ return Lua.Value(tree.source, "(io.write(", \(%prompt as lua expr), ") and io.read())");
+ else
+ return Lua.Value(tree.source, "(io.write(tostring(", \(%prompt as lua expr), ")) and io.read())");
+ end