aboutsummaryrefslogtreecommitdiff
path: root/core/io.nom
diff options
context:
space:
mode:
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