diff options
| author | krasimir <krasimir@chalmers.se> | 2009-09-28 12:06:20 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2009-09-28 12:06:20 +0000 |
| commit | 288ef038f21a043aacd292b3e958aad06ac6beca (patch) | |
| tree | 61e5616658f847889b71955af3dea25fd025d7cd /src/GF | |
| parent | 726d160c8d79f148b5dc14e5616ec4302fe084a9 (diff) | |
export the morphology API from PGF
Diffstat (limited to 'src/GF')
| -rw-r--r-- | src/GF/Command/Commands.hs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/GF/Command/Commands.hs b/src/GF/Command/Commands.hs index d915ac5bf..97685b7ce 100644 --- a/src/GF/Command/Commands.hs +++ b/src/GF/Command/Commands.hs @@ -730,16 +730,16 @@ allCommands cod env@(pgf, mos) = Map.fromList [ prGrammar opts | isOpt "cats" opts = return $ fromString $ unwords $ map (showType []) $ categories pgf - | isOpt "fullform" opts = return $ fromString $ concatMap (prFullFormLexicon . morpho) $ optLangs opts + | isOpt "fullform" opts = return $ fromString $ concatMap (morpho "" prFullFormLexicon) $ optLangs opts | isOpt "missing" opts = return $ fromString $ unlines $ [unwords (showCId la:":": map showCId cs) | la <- optLangs opts, let cs = missingLins pgf la] | otherwise = do fmt <- readOutputFormat (valStrOpts "printer" "pgf_pretty" opts) return $ fromString $ concatMap snd $ exportPGF noOptions fmt pgf morphos opts s = - [lookupMorpho (morpho la) s | la <- optLangs opts] + [morpho [] (\mo -> lookupMorpho mo s) la | la <- optLangs opts] - morpho la = maybe Map.empty id $ Map.lookup la mos + morpho z f la = maybe z f $ Map.lookup la mos -- ps -f -g s returns g (f s) stringOps menv opts s = foldr (menvop . app) s (reverse opts) where @@ -802,4 +802,10 @@ infinity = 256 lookFlag :: PGF -> String -> String -> Maybe String lookFlag pgf lang flag = lookConcrFlag pgf (mkCId lang) (mkCId flag) +prFullFormLexicon :: Morpho -> String +prFullFormLexicon mo = + unlines [w ++ " : " ++ prMorphoAnalysis ts | (w,ts) <- fullFormLexicon mo] + +prMorphoAnalysis :: [(Lemma,Analysis)] -> String +prMorphoAnalysis lps = unlines [showCId l ++ " " ++ p | (l,p) <- lps] |
