diff options
| author | aarne <aarne@cs.chalmers.se> | 2006-02-22 22:29:11 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2006-02-22 22:29:11 +0000 |
| commit | b30e817e55f0b3b3934c8ac11c2bac5ad2568ab9 (patch) | |
| tree | 6dc21f90765367067774a48c5378a399a453e17b /src | |
| parent | c2636ea9688fd89df7a13f53970e699c99997fe3 (diff) | |
tram using compiled resources
Diffstat (limited to 'src')
| -rw-r--r-- | src/GF/Canon/Look.hs | 9 | ||||
| -rw-r--r-- | src/GF/Compile/CheckGrammar.hs | 1 | ||||
| -rw-r--r-- | src/GF/Grammar/Lookup.hs | 2 |
3 files changed, 8 insertions, 4 deletions
diff --git a/src/GF/Canon/Look.hs b/src/GF/Canon/Look.hs index c0566f4dc..1fef9b586 100644 --- a/src/GF/Canon/Look.hs +++ b/src/GF/Canon/Look.hs @@ -30,6 +30,7 @@ import GF.Grammar.PrGrammar import GF.Canon.CMacros ----import Values import GF.Grammar.MMacros +import GF.Grammar.Macros (zIdent) import qualified GF.Infra.Modules as M import qualified GF.Canon.CanonToGrammar as CG @@ -50,7 +51,7 @@ lookupCncInfo gr f@(CIQ m c) = do _ -> prtBad "not concrete module" m lookupLin :: CanonGrammar -> CIdent -> Err Term -lookupLin gr f = do +lookupLin gr f = errIn "looking up linearization rule" $ do info <- lookupCncInfo gr f case info of CncFun _ _ t _ -> return t @@ -58,7 +59,9 @@ lookupLin gr f = do AnyInd _ n -> lookupLin gr $ redirectIdent n f lookupLincat :: CanonGrammar -> CIdent -> Err CType -lookupLincat gr f = do +lookupLincat gr (CIQ _ c) | elem c [zIdent "String", zIdent "Int", zIdent "Float"] = + return defLinType --- ad hoc; not needed? cf. Grammar.Lookup.lookupLincat +lookupLincat gr f = errIn "looking up linearization type" $ do info <- lookupCncInfo gr f case info of CncCat t _ _ -> return t @@ -66,7 +69,7 @@ lookupLincat gr f = do _ -> prtBad "no lincat found for" f lookupPrintname :: CanonGrammar -> CIdent -> Err Term -lookupPrintname gr f = do +lookupPrintname gr f = errIn "looking up printname" $ do info <- lookupCncInfo gr f case info of CncFun _ _ _ t -> return t diff --git a/src/GF/Compile/CheckGrammar.hs b/src/GF/Compile/CheckGrammar.hs index eaf9bc819..21eb1fbbb 100644 --- a/src/GF/Compile/CheckGrammar.hs +++ b/src/GF/Compile/CheckGrammar.hs @@ -287,6 +287,7 @@ computeLType gr t = do Q (IC "Predef") (IC "Float") -> return ty ---- shouldn't be needed Q m c | elem c [cPredef,cPredefAbs] -> return ty + Q m c | elem c [zIdent "Int",zIdent "Float",zIdent "String"] -> return defLinType ---- Q m ident -> checkIn ("module" +++ prt m) $ do ty' <- checkErr (lookupResDef gr m ident) diff --git a/src/GF/Grammar/Lookup.hs b/src/GF/Grammar/Lookup.hs index 4123f450f..6c6f13611 100644 --- a/src/GF/Grammar/Lookup.hs +++ b/src/GF/Grammar/Lookup.hs @@ -34,7 +34,7 @@ import Data.List (nub) import Control.Monad lookupResDef :: SourceGrammar -> Ident -> Ident -> Err Term -lookupResDef gr = look True where +lookupResDef gr m c = look True m c where look isTop m c = do mi <- lookupModule gr m case mi of |
