printing option -api in the eb command

This commit is contained in:
aarne
2010-12-06 10:49:38 +00:00
parent 1e5a0c9d9e
commit a3ae8cf696
5 changed files with 32 additions and 22 deletions

View File

@@ -296,6 +296,9 @@ allCommands env@(pgf, mos) = Map.fromList [
"gr and rt. Notice that the command doesn't change the environment,",
"but the resulting .gf file must be imported separately."
],
options = [
("api","convert trees to overloaded API expressions (using Syntax not Lang)")
],
flags = [
("file","the file to be converted (suffix .gfe must be given)"),
("lang","the language in which to parse"),
@@ -304,7 +307,8 @@ allCommands env@(pgf, mos) = Map.fromList [
exec = \opts _ -> do
let file = optFile opts
pgf <- optProbs opts pgf
let conf = configureExBased pgf (optMorpho opts) (optLang opts)
let printer = if (isOpt "api" opts) then exprToAPI else (showExpr [])
let conf = configureExBased pgf (optMorpho opts) (optLang opts) printer
(file',ws) <- parseExamplesInGrammar conf file
if null ws then return () else putStrLn ("unknown words: " ++ unwords ws)
return (fromString ("wrote " ++ file')),

View File

@@ -6,6 +6,7 @@ module GF.Compile.ExampleBased (
import PGF
import PGF.Probabilistic
import PGF.Morphology
import PGF.ToAPI
import Data.List
@@ -55,11 +56,16 @@ convertFile conf src file = do
return []
ParseOk ts ->
case rank ts of
(t:tt) -> appv ("WARNING: ambiguous example " ++ ex) >>
appn t >> mapM_ (appn . (" --- " ++)) tt >> return []
appn ")"
(t:tt) -> do
if null tt
then return ()
else appv ("WARNING: ambiguous example " ++ ex)
appn t
mapM_ (appn . (" --- " ++)) tt
appn ")"
return []
return ws
rank ts = [showExpr [] t ++ " -- " ++ show p | (t,p) <- rankTreesByProbs pgf ts]
rank ts = [printExp conf t ++ " -- " ++ show p | (t,p) <- rankTreesByProbs pgf ts]
appf = appendFile file
appn s = appf s >> appf "\n"
appv s = appn ("--- " ++ s) >> putStrLn s
@@ -68,9 +74,10 @@ data ExConfiguration = ExConf {
resource_pgf :: PGF,
resource_morpho :: Morpho,
verbose :: Bool,
language :: Language
language :: Language,
printExp :: Tree -> String
}
configureExBased :: PGF -> Morpho -> Language -> ExConfiguration
configureExBased pgf morpho lang = ExConf pgf morpho False lang
configureExBased :: PGF -> Morpho -> Language -> (Tree -> String) -> ExConfiguration
configureExBased pgf morpho lang pr = ExConf pgf morpho False lang pr