aboutsummaryrefslogtreecommitdiff
path: root/core/text.nom
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2018-11-09 16:40:36 -0800
committerBruce Hill <bruce@bruce-hill.com>2018-11-09 16:41:19 -0800
commit69aaea030e08e083151aa25b8080eddd0d4c1683 (patch)
tree6cd90a65e6828f60cc052c4a1b33a4a4c0d65570 /core/text.nom
parenta2f07415c5284bf94c146cea6eed4a15f171b9ab (diff)
No longer passing `tree` to every compile action. Now, you can just
return a LuaCode object, and it will automatically get a source from `tree` if it didn't already have a source. Plus some fixes/cleanup.
Diffstat (limited to 'core/text.nom')
-rw-r--r--core/text.nom22
1 files changed, 8 insertions, 14 deletions
diff --git a/core/text.nom b/core/text.nom
index 2d72f01..d4cd227 100644
--- a/core/text.nom
+++ b/core/text.nom
@@ -4,6 +4,8 @@
color codes.
use "core/metaprogramming.nom"
+use "core/operators.nom"
+use "core/control_flow.nom"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -47,17 +49,9 @@ test:
assume "\n" == (newline)
# Text literals
-lua> "\
- ..do
- local escapes = {
- nl="\\\\n", newline="\\\\n", tab="\\\\t", bell="\\\\a", cr="\\\\r",
- ["carriage return"]="\\\\r", backspace="\\\\b", ["form feed"]="\\\\f",
- formfeed="\\\\f", ["vertical tab"]="\\\\v",
- };
- for name, e in pairs(escapes) do
- local lua = "'"..e.."'"
- compile.action[name] = function(compile, tree)
- return LuaCode(tree.source, lua)
- end
- end
- end"
+%escapes = {..}
+ nl:"\n", newline:"\n", tab:"\t", bell:"\a", cr:"\r", "carriage return":"\r",
+ backspace:"\b", "form feed":"\f", formfeed:"\f", "vertical tab":"\v"
+for %name = %str in %escapes:
+ with {%lua: Lua (quote %str)}:
+ %compile.action.%name = ([]-> %lua)