summaryrefslogtreecommitdiff
path: root/examples/PennTreebank/PennFormat.hs
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2012-10-01 08:52:54 +0000
committerkr.angelov <kr.angelov@gmail.com>2012-10-01 08:52:54 +0000
commit6e3503bb7b6c9aac12711477b8a474ce41c1cd7a (patch)
treeef55a8a965a4a09473bc9dad97a38ab13fc59c1b /examples/PennTreebank/PennFormat.hs
parentde679b400acdec70a42b09c525c4c8b4f7d33f09 (diff)
move examples/PennTreebank to /treebanks/PennTreebank
Diffstat (limited to 'examples/PennTreebank/PennFormat.hs')
-rw-r--r--examples/PennTreebank/PennFormat.hs38
1 files changed, 0 insertions, 38 deletions
diff --git a/examples/PennTreebank/PennFormat.hs b/examples/PennTreebank/PennFormat.hs
deleted file mode 100644
index 2aaf0a6b6..000000000
--- a/examples/PennTreebank/PennFormat.hs
+++ /dev/null
@@ -1,38 +0,0 @@
-module PennFormat(parseTreebank, showTree) where
-
-import Text.PrettyPrint
-import Data.Tree
-import Data.Char
-
-parseTreebank :: String -> [Tree String]
-parseTreebank [] = []
-parseTreebank (c:cs)
- | isSpace c = parseTreebank cs
- | c == '(' = let (ts,cs1) = parseTrees cs
- in ts ++ parseTreebank cs1
-
-parseTrees [] = ([],[])
-parseTrees (c:cs)
- | isSpace c = parseTrees cs
- | c == ')' = ([],cs)
- | c == '(' = let (w, cs1) = parseWord cs
- (children,cs2) = parseTrees cs1
- (rest, cs3) = parseTrees cs2
- in (Node (normalize w) children : rest,cs3)
- | otherwise = let (w, cs1) = parseWord (c:cs)
- (rest, cs2) = parseTrees cs1
- in (Node w [] : rest,cs2)
-
-normalize tag =
- let (tag0,mod) = break (=='-') tag
- in if null tag0
- then tag
- else tag0
-
-parseWord = break (\c -> isSpace c || c == '(' || c == ')')
-
-printTree (Node w []) = text w
-printTree (Node l children) = parens (text l <+> hsep (map printTree children))
-
-showTree :: Tree String -> String
-showTree = render . printTree