forked from GitHub/gf-core
Added GF.GFCC.Macros.lookStartCat. Changed GF.GFCC:API to use it (before, startCat always returned "S"!). GFCCtoJS has not been changed, Moises will do that.
This commit is contained in:
@@ -141,7 +141,7 @@ allCommands mgr = Map.fromAscList [
|
|||||||
optLangs opts = case valIdOpts "lang" "" opts of
|
optLangs opts = case valIdOpts "lang" "" opts of
|
||||||
"" -> languages mgr
|
"" -> languages mgr
|
||||||
lang -> [lang]
|
lang -> [lang]
|
||||||
optCat opts = valIdOpts "cat" (lookAbsFlag gr (cid "startcat")) opts
|
optCat opts = valIdOpts "cat" (lookStartCat gr) opts
|
||||||
optNum opts = valIntOpts "number" 1 opts
|
optNum opts = valIntOpts "number" 1 opts
|
||||||
optNumInf opts = valIntOpts "number" 1000000000 opts ---- 10^9
|
optNumInf opts = valIntOpts "number" 1000000000 opts ---- 10^9
|
||||||
|
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ languages mgr = [l | CId l <- cncnames (gfcc mgr)]
|
|||||||
|
|
||||||
categories mgr = [c | CId c <- Map.keys (cats (abstract (gfcc mgr)))]
|
categories mgr = [c | CId c <- Map.keys (cats (abstract (gfcc mgr)))]
|
||||||
|
|
||||||
startCat mgr = "S" ----
|
startCat mgr = lookStartCat (gfcc mgr)
|
||||||
|
|
||||||
emptyMultiGrammar = MultiGrammar emptyGFCC
|
emptyMultiGrammar = MultiGrammar emptyGFCC
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,9 @@ import GF.GFCC.DataGFCC
|
|||||||
import GF.Formalism.FCFG (FGrammar)
|
import GF.Formalism.FCFG (FGrammar)
|
||||||
import GF.Parsing.FCFG.PInfo (FCFPInfo, fcfPInfoToFGrammar)
|
import GF.Parsing.FCFG.PInfo (FCFPInfo, fcfPInfoToFGrammar)
|
||||||
----import GF.GFCC.PrintGFCC
|
----import GF.GFCC.PrintGFCC
|
||||||
|
import Control.Monad
|
||||||
import Data.Map
|
import Data.Map
|
||||||
|
import Data.Maybe
|
||||||
import Data.List
|
import Data.List
|
||||||
|
|
||||||
-- operations for manipulating GFCC grammars and objects
|
-- operations for manipulating GFCC grammars and objects
|
||||||
@@ -36,6 +38,10 @@ lookParser gfcc lang = parser $ lookMap (error "no lang") lang $ concretes gfcc
|
|||||||
lookFCFG :: GFCC -> CId -> Maybe FGrammar
|
lookFCFG :: GFCC -> CId -> Maybe FGrammar
|
||||||
lookFCFG gfcc lang = fmap fcfPInfoToFGrammar $ lookParser gfcc lang
|
lookFCFG gfcc lang = fmap fcfPInfoToFGrammar $ lookParser gfcc lang
|
||||||
|
|
||||||
|
lookStartCat :: GFCC -> String
|
||||||
|
lookStartCat gfcc = fromMaybe "S" $ msum $ Data.List.map (Data.Map.lookup (CId "startcat"))
|
||||||
|
[gflags gfcc, aflags (abstract gfcc)]
|
||||||
|
|
||||||
lookGlobalFlag :: GFCC -> CId -> String
|
lookGlobalFlag :: GFCC -> CId -> String
|
||||||
lookGlobalFlag gfcc f =
|
lookGlobalFlag gfcc f =
|
||||||
lookMap "?" f (gflags gfcc)
|
lookMap "?" f (gflags gfcc)
|
||||||
|
|||||||
Reference in New Issue
Block a user