summaryrefslogtreecommitdiff
path: root/src-3.0/GF/GFCC/Macros.hs
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2008-05-29 12:27:26 +0000
committerkrasimir <krasimir@chalmers.se>2008-05-29 12:27:26 +0000
commit9c2d27b8d19343c4401e0f622e7d541101982670 (patch)
tree6160f0b8a59232c51407dca9a2a620c77cf290c9 /src-3.0/GF/GFCC/Macros.hs
parent9a759a66dc33f82f457fc649b669fcc8d32edf3e (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.hs11
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"))