summaryrefslogtreecommitdiff
path: root/src/GF/Infra/CompactPrint.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/Infra/CompactPrint.hs')
-rw-r--r--src/GF/Infra/CompactPrint.hs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/GF/Infra/CompactPrint.hs b/src/GF/Infra/CompactPrint.hs
new file mode 100644
index 000000000..eb8be2292
--- /dev/null
+++ b/src/GF/Infra/CompactPrint.hs
@@ -0,0 +1,11 @@
+module GF.Infra.CompactPrint where
+import Data.Char
+
+compactPrint = concat . map spaceIf . words
+
+spaceIf w = case w of
+ _ | keyword w -> "\n" ++ w
+ c:cs | isAlpha c || isDigit c -> " " ++ w
+ _ -> w
+
+keyword w = elem w ["cat","fun","lin","lincat","oper","param"]