aboutsummaryrefslogtreecommitdiff
path: root/core/io.nom
blob: 4f12e578f3858ded2957c519a4272ad46680bd15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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