From 69aaea030e08e083151aa25b8080eddd0d4c1683 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 9 Nov 2018 16:40:36 -0800 Subject: 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. --- core/text.nom | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'core/text.nom') 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) -- cgit v1.2.3