--- /dev/null
+-- filename : type-haskell.lua
+-- comment : Pretty printing of haskell programs. Currently, this is just
+--- verbatim printing with the option of applying strikethrough
+-- author : Matthijs Kooijman, Universiteit Twente, NL
+-- copyright: Matthijs Kooijman
+-- license : None
+
+local utf = unicode.utf8
+
+local visualizer = buffers.newvisualizer('haskell')
+
+function visualizer.flush_line(str,nested)
+ while str ~= '' do
+ print("Looking at '" .. str .. "'")
+ if utf.match(str, '^ ') then
+ tex.sprint('\\obs ')
+ -- Eat the first character
+ str = utf.sub(str, 2)
+ else
+ local text, rest = utf.match(str, "^%-%-(.-)%-%-(.*)")
+ if text then
+ tex.sprint('\\strikethrough{')
+ -- Recursively call ourselves to handle spaces gracefully.
+ visualizer.flush_line(text)
+ tex.sprint('}')
+ -- Eat the processed characters
+ str = rest
+ else
+ -- Write the first character
+ tex.write(utf.sub(str, 1, 1))
+ -- Eat the first character
+ str = utf.sub(str, 2)
+ end
+ end
+ end
+end
+
+-- vim: set sw=4 sts=4 expandtab ai: