diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2018-11-09 16:40:36 -0800 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2018-11-09 16:41:19 -0800 |
| commit | 69aaea030e08e083151aa25b8080eddd0d4c1683 (patch) | |
| tree | 6cd90a65e6828f60cc052c4a1b33a4a4c0d65570 /core/text.nom | |
| parent | a2f07415c5284bf94c146cea6eed4a15f171b9ab (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.nom | 22 |
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) |
