diff options
Diffstat (limited to 'core/io.nom')
| -rw-r--r-- | core/io.nom | 20 |
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 |
