diff options
| author | krasimir <krasimir@chalmers.se> | 2008-05-29 12:27:26 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2008-05-29 12:27:26 +0000 |
| commit | 9c2d27b8d19343c4401e0f622e7d541101982670 (patch) | |
| tree | 6160f0b8a59232c51407dca9a2a620c77cf290c9 /src-3.0/GF/GFCC/Macros.hs | |
| parent | 9a759a66dc33f82f457fc649b669fcc8d32edf3e (diff) | |
move GF.Parsing.FCFG.PInfo to GF.GFCC.BuildParser and rename FCFPInfo to ParserInfo
Diffstat (limited to 'src-3.0/GF/GFCC/Macros.hs')
| -rw-r--r-- | src-3.0/GF/GFCC/Macros.hs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src-3.0/GF/GFCC/Macros.hs b/src-3.0/GF/GFCC/Macros.hs index 85a92523a..0750fb2ff 100644 --- a/src-3.0/GF/GFCC/Macros.hs +++ b/src-3.0/GF/GFCC/Macros.hs @@ -2,10 +2,10 @@ module GF.GFCC.Macros where import GF.GFCC.CId import GF.GFCC.DataGFCC -import GF.Parsing.FCFG.PInfo (fcfPInfoToFGrammar) import GF.Infra.PrintClass import Control.Monad -import qualified Data.Map as Map +import qualified Data.Map as Map +import qualified Data.Array as Array import Data.Maybe import Data.List @@ -31,11 +31,14 @@ lookType :: GFCC -> CId -> Type lookType gfcc f = fst $ lookMap (error $ "lookType " ++ show f) f (funs (abstract gfcc)) -lookParser :: GFCC -> CId -> Maybe FCFPInfo +lookParser :: GFCC -> CId -> Maybe ParserInfo lookParser gfcc lang = parser $ lookMap (error "no lang") lang $ concretes gfcc lookFCFG :: GFCC -> CId -> Maybe FGrammar -lookFCFG gfcc lang = fmap fcfPInfoToFGrammar $ lookParser gfcc lang +lookFCFG gfcc lang = fmap toFGrammar $ lookParser gfcc lang + where + toFGrammar :: ParserInfo -> FGrammar + toFGrammar pinfo = (Array.elems (allRules pinfo), startupCats pinfo) lookStartCat :: GFCC -> String lookStartCat gfcc = fromMaybe "S" $ msum $ Data.List.map (Map.lookup (mkCId "startcat")) |
