diff options
Diffstat (limited to 'src/GF/GFCC/Macros.hs')
| -rw-r--r-- | src/GF/GFCC/Macros.hs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/GF/GFCC/Macros.hs b/src/GF/GFCC/Macros.hs index b9acd9fc5..4897aa667 100644 --- a/src/GF/GFCC/Macros.hs +++ b/src/GF/GFCC/Macros.hs @@ -5,7 +5,9 @@ import GF.GFCC.DataGFCC import GF.Formalism.FCFG (FGrammar) import GF.Parsing.FCFG.PInfo (FCFPInfo, fcfPInfoToFGrammar) ----import GF.GFCC.PrintGFCC +import Control.Monad import Data.Map +import Data.Maybe import Data.List -- 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 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 f = lookMap "?" f (gflags gfcc) |
