mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-19 01:39:32 -06:00
for release meeting
This commit is contained in:
@@ -148,8 +148,9 @@ string2srcTerm gr m s = do
|
||||
randomTreesIO :: Options -> GFGrammar -> Int -> IO [Tree]
|
||||
randomTreesIO opts gr n = do
|
||||
gen <- myStdGen mx
|
||||
t <- err (\s -> putStrLnFlush s >> return []) (return . singleton) $
|
||||
mkRandomTree gen mx g catfun
|
||||
t <- err (\s -> putS s >> return [])
|
||||
(return . singleton) $
|
||||
mkRandomTree gen mx g catfun
|
||||
ts <- if n==1 then return [] else randomTreesIO opts gr (n-1)
|
||||
return $ t ++ ts
|
||||
where
|
||||
@@ -158,6 +159,8 @@ randomTreesIO opts gr n = do
|
||||
_ -> Left $ firstAbsCat opts gr
|
||||
g = grammar gr
|
||||
mx = optIntOrN opts flagDepth 41
|
||||
putS s = if oElem beSilent opts then return () else putStrLnFlush s
|
||||
|
||||
|
||||
generateTrees :: Options -> GFGrammar -> Maybe Tree -> [Tree]
|
||||
generateTrees opts gr mt =
|
||||
|
||||
@@ -35,6 +35,10 @@ import Arch
|
||||
|
||||
import Monad
|
||||
|
||||
-- environment variable for grammar search path
|
||||
|
||||
gfGrammarPathVar = "GF_LIB_PATH"
|
||||
|
||||
-- in batch mode: write code in a file
|
||||
|
||||
batchCompile f = liftM fst $ compileModule defOpts emptyShellState f
|
||||
@@ -86,9 +90,10 @@ compileModule opts1 st0 file = do
|
||||
let opts = addOptions opts1 opts0
|
||||
let ps0 = pathListOpts opts
|
||||
let fpath = justInitPath file
|
||||
let ps = if useFileOpt
|
||||
then (map (prefixPathName fpath) ps0)
|
||||
else ps0
|
||||
let ps1 = if useFileOpt
|
||||
then (map (prefixPathName fpath) ps0)
|
||||
else ps0
|
||||
ps <- ioeIO $ extendPathEnv gfGrammarPathVar ps1
|
||||
let ioeIOIf = if oElem beSilent opts then (const (return ())) else ioeIO
|
||||
ioeIOIf $ putStrLn $ "module search path:" +++ show ps ----
|
||||
let putp = putPointE opts
|
||||
|
||||
@@ -81,6 +81,13 @@ doesFileExistPath paths file = do
|
||||
mpfile <- ioeIO $ getFilePath paths file
|
||||
return $ maybe False (const True) mpfile
|
||||
|
||||
-- path in environment variable has lower priority
|
||||
extendPathEnv :: String -> [FilePath] -> IO [FilePath]
|
||||
extendPathEnv var ps = do
|
||||
s <- catch (getEnv var) (const (return ""))
|
||||
let fs = pFilePaths s
|
||||
return $ ps ++ fs
|
||||
|
||||
pFilePaths :: String -> [FilePath]
|
||||
pFilePaths s = case span (/=':') s of
|
||||
(f,_:cs) -> f : pFilePaths cs
|
||||
|
||||
@@ -24,7 +24,7 @@ teachTranslation opts ig og = do
|
||||
transTrainList ::
|
||||
Options -> GFGrammar -> GFGrammar -> Integer -> IO [(String,[String])]
|
||||
transTrainList opts ig og number = do
|
||||
ts <- randomTreesIO opts ig (fromInteger number)
|
||||
ts <- randomTreesIO (addOption beSilent opts) ig (fromInteger number)
|
||||
return $ map mkOne $ ts
|
||||
where
|
||||
cat = firstCatOpts opts ig
|
||||
@@ -39,7 +39,7 @@ teachMorpho opts ig = useIOE () $ do
|
||||
|
||||
morphoTrainList :: Options -> GFGrammar -> Integer -> IOE [(String,[String])]
|
||||
morphoTrainList opts ig number = do
|
||||
ts <- ioeIO $ randomTreesIO opts ig (fromInteger number)
|
||||
ts <- ioeIO $ randomTreesIO (addOption beSilent opts) ig (fromInteger number)
|
||||
gen <- ioeIO $ myStdGen (fromInteger number)
|
||||
mkOnes gen ts
|
||||
where
|
||||
@@ -49,9 +49,9 @@ morphoTrainList opts ig number = do
|
||||
let (i,gen') = randomR (0, length pss - 1) gen
|
||||
(ps,ss) <- ioeErr $ pss !? i
|
||||
(_,ss0) <- ioeErr $ pss !? 0
|
||||
let bas = concat $ take 1 ss0
|
||||
let bas = unwords ss0 --- concat $ take 1 ss0
|
||||
more <- mkOnes gen' ts
|
||||
return $ (bas +++ ":" +++ unwords (map prt_ ps), return (concat ss)) : more
|
||||
return $ (bas +++ ":" +++ unwords (map prt_ ps), return (unwords ss)) : more
|
||||
mkOnes gen [] = return []
|
||||
|
||||
gr = grammar ig
|
||||
|
||||
Reference in New Issue
Block a user