diff options
| author | Bruce Hill <bitbucket@bruce-hill.com> | 2018-01-11 15:27:15 -0800 |
|---|---|---|
| committer | Bruce Hill <bitbucket@bruce-hill.com> | 2018-01-11 15:27:15 -0800 |
| commit | 1e0dc6e4775168c2610774ea29ed512c5451afe6 (patch) | |
| tree | 1c3eae7795ad7aea914b11c91dfc167464487694 /lib/text.nom | |
| parent | 60aa3f5fcf5db2953e3b215cd85a6b20fb8728fb (diff) | |
Moved text utilities into their own file.
Diffstat (limited to 'lib/text.nom')
| -rw-r--r-- | lib/text.nom | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/text.nom b/lib/text.nom new file mode 100644 index 0000000..f7e4b00 --- /dev/null +++ b/lib/text.nom @@ -0,0 +1,32 @@ +use "lib/metaprogramming.nom" +use "lib/control_flow.nom" +use "lib/collections.nom" + +lua> "local \%ansi, \%colors" +set %ansi = {..} + nl="\\n", newline="\\n", tab="\\t", bell="\\a", cr="\\r", "carriage return"="\\r" + backspace="\\b", "form feed"="\\f", formfeed="\\f", "vertical tab"="\\v" + +set %colors = {..} + "reset color"="\\27[0m", bright="\\27[1m", dim="\\27[2m", underscore="\\27[4m" + blink="\\27[5m", inverse="\\27[7m", hidden="\\27[8m" + + black="\\27[30m", red="\\27[31m", green="\\27[32m", yellow="\\27[33m", blue="\\27[34m" + magenta="\\27[35m", cyan="\\27[36m", white="\\27[37m" + + "on black"="\\27[40m", "on red"="\\27[41m", "on green"="\\27[42m", "on yellow"="\\27[43m" + "on blue"="\\27[44m", "on magenta"="\\27[45m", "on cyan"="\\27[46m", "on white"="\\27[47m" + +for %name=%str in %ansi: + lua> ".." + local e = "'"..\%str.."'"; + nomsu:define_compile_action(\%name, \(__line_no__), function(nomsu) return {expr=e}; end, \(__src__ 1)); + +for %name=%str in %colors: + lua> ".." + local e = "'"..\%str.."'"; + local reset = "'"..\(%colors->"reset color").."'"; + nomsu:define_compile_action(\%name, \(__line_no__), function(nomsu) return {expr=e}; end, \(__src__ 1)); + nomsu:define_compile_action(\%name.." %", \(__line_no__), function(nomsu, _) + return {expr=e..".."..nomsu:tree_to_lua(_).expr..".."..reset}; + end, \(__src__ 1)); |
