1
0
forked from GitHub/gf-core

PGF.groupResults and the option l -groups, to show ambiguities grouped by laguage

This commit is contained in:
aarne
2010-03-22 19:03:06 +00:00
parent 2ac96a7643
commit 716a209f65
2 changed files with 19 additions and 4 deletions

View File

@@ -51,6 +51,7 @@ module PGF(
-- * Operations
-- ** Linearization
linearize, linearizeAllLang, linearizeAll,
groupResults, -- lins of trees by language, removing duplicates
showPrintName,
-- ** Parsing
@@ -239,6 +240,13 @@ linearizeAll mgr = map snd . linearizeAllLang mgr
linearizeAllLang mgr t =
[(lang,PGF.linearize mgr lang t) | lang <- languages mgr]
groupResults :: [[(Language,String)]] -> [(Language,[String])]
groupResults = Map.toList . foldr more Map.empty . start . concat
where
start ls = [(l,[s]) | (l,s) <- ls]
more (l,s) =
Map.insertWith (\ [x] xs -> if elem x xs then xs else (x : xs)) l s
parseAll mgr typ = map snd . parseAllLang mgr typ
parseAllLang mgr typ s =