summaryrefslogtreecommitdiff
path: root/src/compiler/GF
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2010-11-17 08:30:02 +0000
committeraarne <aarne@chalmers.se>2010-11-17 08:30:02 +0000
commit2acb125f6fd05427a95ebe2a1c784e362512cf59 (patch)
treef4fda490b6bfe7c8bc5cda4458dc69896b326952 /src/compiler/GF
parent7a2ab26f9f742f30b6068dc3cc95aa9965042a61 (diff)
fixed some bugs in translation quiz
Diffstat (limited to 'src/compiler/GF')
-rw-r--r--src/compiler/GF/Command/Commands.hs11
-rw-r--r--src/compiler/GF/Quiz.hs4
2 files changed, 10 insertions, 5 deletions
diff --git a/src/compiler/GF/Command/Commands.hs b/src/compiler/GF/Command/Commands.hs
index 7989078c2..faaa9e3ab 100644
--- a/src/compiler/GF/Command/Commands.hs
+++ b/src/compiler/GF/Command/Commands.hs
@@ -686,8 +686,8 @@ allCommands env@(pgf, mos) = Map.fromList [
syntax = "tq -from=LANG -to=LANG (-cat=CAT)? (-probs=FILE)? TREE?",
synopsis = "start a translation quiz",
exec = \opts xs -> do
- let from = valCIdOpts "from" (optLang opts) opts
- let to = valCIdOpts "to" (optLang opts) opts
+ let from = optLangFlag "from" opts
+ let to = optLangFlag "to" opts
let typ = optType opts
let mt = mexp xs
pgf <- optProbs opts pgf
@@ -990,7 +990,10 @@ allCommands env@(pgf, mos) = Map.fromList [
optRestricted opts =
restrictPGF (\f -> and [hasLin pgf la f | la <- optLangs opts]) pgf
- optLangs opts = case valStrOpts "lang" "" opts of
+ optLang = optLangFlag "lang"
+ optLangs = optLangsFlag "lang"
+
+ optLangsFlag f opts = case valStrOpts f "" opts of
"" -> languages pgf
lang -> map completeLang (chunks ',' lang)
completeLang la = let cla = (mkCId la) in
@@ -998,7 +1001,7 @@ allCommands env@(pgf, mos) = Map.fromList [
then cla
else (mkCId (showCId (abstractName pgf) ++ la))
- optLang opts = head $ optLangs opts ++ [wildCId]
+ optLangFlag f opts = head $ optLangsFlag f opts ++ [wildCId]
optOpenTypes opts = case valStrOpts "openclass" "" opts of
"" -> []
diff --git a/src/compiler/GF/Quiz.hs b/src/compiler/GF/Quiz.hs
index 0b37660c8..aaeae34a8 100644
--- a/src/compiler/GF/Quiz.hs
+++ b/src/compiler/GF/Quiz.hs
@@ -46,8 +46,10 @@ translationList mex pgf ig og typ number = do
Nothing -> generateRandom gen pgf typ
return $ map mkOne $ ts
where
- mkOne t = (norml (linearize pgf ig t), map (norml . linearize pgf og) (homonyms t))
+ mkOne t = (norml (linearize pgf ig t),
+ map norml (concatMap lins (homonyms t)))
homonyms = parse pgf ig typ . linearize pgf ig
+ lins = nub . concatMap (map snd) . tabularLinearizes pgf og
morphologyList ::
Maybe Expr -> PGF -> Language -> Type -> Int -> IO [(String,[String])]