diff --git a/doc/gf-history.html b/doc/gf-history.html index 0c913635a..9884129c4 100644 --- a/doc/gf-history.html +++ b/doc/gf-history.html @@ -14,6 +14,22 @@ Changes in functionality since May 17, 2005, release of GF Version 2.2

+6/3 (AR) Generalized the gfe file format in two ways: +

    +
  1. Use the real grammar parser, hence (in M.C "foo") expressions + may occur anywhere. But the ad hoc word substitution syntax is + abandoned: ordinary let (and where) expressions + can now be used instead. +
  2. The resource may now be a treebank, not just a grammar. Parsing + is thus replaced by treebank lookup, which in most cases is faster. +
+A minor novelty is that the --# -resource=FILE flag can now be +relative to GF_LIB_PATH, both for grammars and treebanks. +The flag --# -treebank=IDENT gives the language whose treebank +entries are used, in case of a multilingual treebank. + +

+ 4/3 (AR) Added command use_treebank = ut for lookup in a treebank. This command can be used as a fast substitute for parsing, but also as a way to browse treebanks. diff --git a/examples/tram/ExTramI.gfe b/examples/tram/ExTramI.gfe index 4a05d1cf8..f1a07af09 100644 --- a/examples/tram/ExTramI.gfe +++ b/examples/tram/ExTramI.gfe @@ -1,4 +1,4 @@ ---# -resource=../../lib/multimodal/MultimodalEng.gfc +--# -resource=multimodal/MultimodalEng.gfc --# -path=multimodal:present:mathematical:prelude incomplete concrete TramI of Tram = open Multimodal, DemRes, Symbol in { diff --git a/src/GF/Compile/MkConcrete.hs b/src/GF/Compile/MkConcrete.hs index 0355cdaf0..da9fada00 100644 --- a/src/GF/Compile/MkConcrete.hs +++ b/src/GF/Compile/MkConcrete.hs @@ -65,7 +65,10 @@ mkCncGroups opts0 ((res,path),files) = do putStrLn $ "Compiling resource " ++ res let opts = addOptions (options [beSilent,pathList path]) opts0 let treebank = oElem (iOpt "treebank") opts - egr <- appIOE $ shellStateFromFiles opts emptyShellState res + resf <- useIOE res $ do + (fp,_) <- readFileLibraryIOE gfLibraryPath res + return fp + egr <- appIOE $ shellStateFromFiles opts emptyShellState resf (parser,morpho) <- if treebank then do tb <- err (\_ -> error $ "no treebank of name" +++ path) return diff --git a/src/GF/Shell.hs b/src/GF/Shell.hs index d713bcc42..062946649 100644 --- a/src/GF/Shell.hs +++ b/src/GF/Shell.hs @@ -319,6 +319,8 @@ execC co@(comm, opts0) sa@(sh@(st,(h,_,_,_)),a) = checkOptions st co >> case com returnArg (AString $ unlines $ lookupTreebank tb s) sa _ | oElem (iOpt "assocs") opts -> do returnArg (AString $ unlines $ map printAssoc $ assocsTreebank tb) sa + _ | oElem (iOpt "trees") opts -> do + returnArg (ATrms $ str2trees $ concatMap snd $ assocsTreebank tb) sa _ -> do let tes = map (string2treeErr gro) $ lookupTreebank tb s terms = [t | Ok t <- tes] @@ -442,6 +444,8 @@ execC co@(comm, opts0) sa@(sh@(st,(h,_,_,_)),a) = checkOptions st co >> case com AString s -> err AError (ATrms . return) $ string2treeErr gro s _ -> a + str2trees ts = [t | Ok t <- map (string2treeErr gro) ts] + strees a = case a of ATrms ts -> ts _ -> [] diff --git a/src/GF/Shell/HelpFile.hs b/src/GF/Shell/HelpFile.hs index ca795d01c..7c9133417 100644 --- a/src/GF/Shell/HelpFile.hs +++ b/src/GF/Shell/HelpFile.hs @@ -252,7 +252,8 @@ txtHelpFile = "\n options:" ++ "\n -assocs show all string-trees associations in the treebank" ++ "\n -strings show all strings in the treebank" ++ - "\n -raw return result as string, without typechecking it" ++ + "\n -trees show all trees in the treebank" ++ + "\n -raw return the lookup result as string, without typechecking it" ++ "\n flags:" ++ "\n -treebank use this treebank (instead of the latest introduced one)" ++ "\n examples:" ++ diff --git a/src/GF/Shell/ShellCommands.hs b/src/GF/Shell/ShellCommands.hs index 160f7bc22..b62f2119d 100644 --- a/src/GF/Shell/ShellCommands.hs +++ b/src/GF/Shell/ShellCommands.hs @@ -187,7 +187,7 @@ optionsOfCommand co = case co of CGenerateTrees -> both "metas" "atoms depth alts cat lang number" CPutTerm -> flags "transform number" CTreeBank -> opts "c xml trees" - CLookupTreebank -> both "assocs raw strings" "treebank" + CLookupTreebank -> both "assocs raw strings trees" "treebank" CWrapTerm _ -> opts "c" CApplyTransfer _ -> flags "lang transfer" CMorphoAnalyse -> both "short" "lang" diff --git a/src/HelpFile b/src/HelpFile index bea9a7b9a..58c4c1262 100644 --- a/src/HelpFile +++ b/src/HelpFile @@ -223,7 +223,8 @@ ut, use_treebank: ut String options: -assocs show all string-trees associations in the treebank -strings show all strings in the treebank - -raw return result as string, without typechecking it + -trees show all trees in the treebank + -raw return the lookup result as string, without typechecking it flags: -treebank use this treebank (instead of the latest introduced one) examples: