summaryrefslogtreecommitdiff
path: root/src/GF/Data/Glue.hs
diff options
context:
space:
mode:
authoraarne <unknown>2003-11-10 08:48:51 +0000
committeraarne <unknown>2003-11-10 08:48:51 +0000
commita4741d681f1fb330686d3e758ee8211da087feb6 (patch)
tree749707564835301b31d900d7bd8bd032cc0b1bd2 /src/GF/Data/Glue.hs
parentd8e07f189a6c825b9ced62e38c3fc2ec6c6c5f67 (diff)
Glue modules.
Diffstat (limited to 'src/GF/Data/Glue.hs')
-rw-r--r--src/GF/Data/Glue.hs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/GF/Data/Glue.hs b/src/GF/Data/Glue.hs
new file mode 100644
index 000000000..247224075
--- /dev/null
+++ b/src/GF/Data/Glue.hs
@@ -0,0 +1,19 @@
+module Glue where
+
+import Trie
+import Operations
+import List
+
+-------- AR 8/11/2003, using Markus Forsberg's implementation of Huet's unglue
+
+tcompileSimple :: [String] -> Trie
+tcompileSimple ss = tcompile [(s,[(atWP,s)]) | s <- ss]
+
+decomposeSimple :: Trie -> String -> Err [String]
+decomposeSimple t s = do
+ let ss = map (decompose t) $ words s
+ if any null ss
+ then Bad "unknown word in input"
+ else return $ concat [intersperse "&+" ws | ws <- ss]
+
+exTrie = tcompileSimple $ words "ett två tre tjugo trettio hundra tusen"