diff options
| author | aarne <aarne@cs.chalmers.se> | 2007-12-07 20:47:58 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2007-12-07 20:47:58 +0000 |
| commit | d9521d2f4c8fa0eb515beefbe07bab4d16b6a543 (patch) | |
| tree | 7b9624d9bf158f0518f9ebd2fd5f914a9ce13180 /src/GF/Devel/Compile/CheckGrammar.hs | |
| parent | 8437e6d29573211a2218444d541c09d4eed3898e (diff) | |
restructured some of the new GF format; modules now in place up to gfo generation
Diffstat (limited to 'src/GF/Devel/Compile/CheckGrammar.hs')
| -rw-r--r-- | src/GF/Devel/Compile/CheckGrammar.hs | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/GF/Devel/Compile/CheckGrammar.hs b/src/GF/Devel/Compile/CheckGrammar.hs index d2f7af8fd..55f499d38 100644 --- a/src/GF/Devel/Compile/CheckGrammar.hs +++ b/src/GF/Devel/Compile/CheckGrammar.hs @@ -29,10 +29,8 @@ module GF.Devel.Compile.CheckGrammar ( topoSortOpers ) where -import GF.Devel.Grammar.Modules -import GF.Devel.Grammar.Judgements -import GF.Devel.Grammar.Terms -import GF.Devel.Grammar.MkJudgements +import GF.Devel.Grammar.Grammar +import GF.Devel.Grammar.Construct import GF.Devel.Grammar.Macros import GF.Devel.Grammar.PrGF import GF.Devel.Grammar.Lookup @@ -187,19 +185,19 @@ checkCompleteGrammar abs cnc = do js' <- foldM checkOne js fs return $ cnc {mjments = js'} where - checkOne js i@(c, Left ju) = case jform ju of + checkOne js i@(c, ju) = case jform ju of JFun -> case Map.lookup c js of - Just (Left j) | jform j == JLin -> return js + Just j | jform j == JLin -> return js _ -> do checkWarn $ "WARNING: no linearization of" +++ prt c return js JCat -> case Map.lookup c js of - Just (Left j) | jform ju == JLincat -> return js + Just j | jform ju == JLincat -> return js _ -> do ---- TODO: other things to check here checkWarn $ "Warning: no linearization type for" +++ prt c ++ ", inserting default {s : Str}" - return $ Map.insert c (Left (cncCat defLinType)) js + return $ Map.insert c (cncCat defLinType) js _ -> return js checkResInfo :: GF -> Ident -> Ident -> Judgement -> Check Judgement @@ -1055,12 +1053,12 @@ linTypeOfType cnc m typ = do -- | dependency check, detecting circularities and returning topo-sorted list -allOperDependencies :: Ident -> Map.Map Ident JEntry -> [(Ident,[Ident])] +allOperDependencies :: Ident -> Map.Map Ident Judgement -> [(Ident,[Ident])] allOperDependencies m = allDependencies (==m) -allDependencies :: (Ident -> Bool) -> Map.Map Ident JEntry -> [(Ident,[Ident])] +allDependencies :: (Ident -> Bool) -> Map.Map Ident Judgement -> [(Ident,[Ident])] allDependencies ism b = - [(f, nub (concatMap opersIn (pts i))) | (f,Left i) <- Map.assocs b] + [(f, nub (concatMap opersIn (pts i))) | (f,i) <- Map.assocs b] where opersIn t = case t of Q n c | ism n -> [c] |
