diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2019-01-23 15:43:19 -0800 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2019-01-23 15:43:19 -0800 |
| commit | 364f3c894b34e20c72f3d7ff273d2519affd9963 (patch) | |
| tree | fbd5171f38b8fda0e8b2412b8744ed20c38875da /lib/core | |
| parent | e181c66ae4586e5f8e17504bdb4516895c3b3d34 (diff) | |
'say' is now it's own action, rather than a 'print' clone, which lets it
handle multiple arguments better.
Diffstat (limited to 'lib/core')
| -rw-r--r-- | lib/core/io.nom | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/lib/core/io.nom b/lib/core/io.nom index 90cfbd4..df52c92 100644 --- a/lib/core/io.nom +++ b/lib/core/io.nom @@ -3,27 +3,20 @@ This file contains basic input/output code use "core/metaprogramming" +use "core/operators" +use "core/control_flow" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ external: - (say $message) compiles to: - lua> (" - if \$message.type == "Text" then - return LuaCode("say(", \($message as lua expr), ");"); - else - return LuaCode("say(tostring(", \($message as lua expr), "));"); - end - ") + (say (*extra arguments*)) means: + for $ in 1 to (select "#" (*extra arguments*)): + $arg = (select $ (*extra arguments*)) + $io.write ($arg as text) + $io.write "\n" + $io.flush() - (say $message inline) compiles to: - lua> (" - if \$message.type == "Text" then - return LuaCode("io.write(", \($message as lua expr), ")"); - else - return LuaCode("io.write(tostring(", \($message as lua expr), "))"); - end - ") + (say $message inline) means ($io.write $message) (ask $prompt) means: $io.write $prompt |
