projects
/
matthijs
/
master-project
/
report.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Allow for ordering of symbols in the lambda prettyprinter.
[matthijs/master-project/report.git]
/
pret-lam.lua
diff --git
a/pret-lam.lua
b/pret-lam.lua
index 43e8c8cc25f305ecf44b10e7d5a9b3b4311ca0ea..ed84d0a60eae09ecfaf10c8e4a0be6d7f541d77d 100644
(file)
--- a/
pret-lam.lua
+++ b/
pret-lam.lua
@@
-19,17
+19,17
@@
local colors = {
local symbols = {
-- Note, the space we replace with is a Unicode non-breaking space
-- (U+00A0).
local symbols = {
-- Note, the space we replace with is a Unicode non-breaking space
-- (U+00A0).
-
[' '] = {
repr = ' '},
-
['_'] = {
repr = '\\_'},
-
['->'] = {
repr = '→'},
-
['=>'] = {
repr = '⇒'},
+
{symbol = ' ',
repr = ' '},
+
{symbol = '_',
repr = '\\_'},
+
{symbol = '->',
repr = '→'},
+
{symbol = '=>',
repr = '⇒'},
-- The default * sits very high above the baseline, \ast (u+2217) looks
-- better.
-- The default * sits very high above the baseline, \ast (u+2217) looks
-- better.
-
['*'] = {
repr = '\\ast'},
-
['~'] = {
repr = '\\HDLine[width=.20 * \\the\\textwidth]'},
-
['|'] = {
repr = '\\char' .. utf.byte('|')},
+
{symbol = '*',
repr = '\\ast'},
+
{symbol = '~',
repr = '\\HDLine[width=.20 * \\the\\textwidth]'},
+
{symbol = '|',
repr = '\\char' .. utf.byte('|')},
-- Use ▶ from our roman font, since Iwona doesn't have the glyph
-- Use ▶ from our roman font, since Iwona doesn't have the glyph
-
['▶'] = {
repr = '{\\rm{}▶}'},
+
{symbol = '▶',
repr = '{\\rm{}▶}'},
}
-- Keywords that should be bold
}
-- Keywords that should be bold
@@
-63,9
+63,9
@@
end
-- character. We can do a lookup directly, since symbols can be different in
-- length, so we just loop over all symbols, trying them in turn.
local function take_symbol(str)
-- character. We can do a lookup directly, since symbols can be different in
-- length, so we just loop over all symbols, trying them in turn.
local function take_symbol(str)
- for
symbol,props in
pairs(symbols) do
+ for
i,props in i
pairs(symbols) do
-- Try to remove symbol from the start of str
-- Try to remove symbol from the start of str
- symbol, newstr = utf.match(str, "^(" .. symbol .. ")(.*)")
+ symbol, newstr = utf.match(str, "^(" ..
props.
symbol .. ")(.*)")
if symbol then
-- Return this tokens repr, or just the token if it has no
-- repr.
if symbol then
-- Return this tokens repr, or just the token if it has no
-- repr.