summaryrefslogtreecommitdiff
path: root/src/GF/Compile
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2005-12-06 12:39:36 +0000
committeraarne <aarne@cs.chalmers.se>2005-12-06 12:39:36 +0000
commita6dc94435648dfeeb10a691a1fd6d3ad2f6dd154 (patch)
treef09c361d6bdfaa30d8c28206da29702db6debde5 /src/GF/Compile
parent54671579f56112271c9f96783d2e9e8a447e9f51 (diff)
opers in cnc
Diffstat (limited to 'src/GF/Compile')
-rw-r--r--src/GF/Compile/CheckGrammar.hs8
-rw-r--r--src/GF/Compile/Optimize.hs2
2 files changed, 8 insertions, 2 deletions
diff --git a/src/GF/Compile/CheckGrammar.hs b/src/GF/Compile/CheckGrammar.hs
index fc77bb6fa..08b14e3fb 100644
--- a/src/GF/Compile/CheckGrammar.hs
+++ b/src/GF/Compile/CheckGrammar.hs
@@ -218,7 +218,7 @@ checkCncInfo gr m (a,abs) (c,info) = do
checkPrintname gr mpr
return (c,CncCat (Yes typ') mdef' mpr)
- _ -> return (c,info)
+ _ -> checkResInfo gr (c,info)
where
env = gr
@@ -740,6 +740,12 @@ checkEqLType env t u trm = do
all (\ (l,a) ->
any (\ (k,b) -> alpha g a b && l == k) ts) rs
+ (ExtR r s, ExtR r' s') -> alpha g r r' && alpha g s s'
+
+ (ExtR r s, t) -> alpha g r t || alpha g s t
+
+
+
-- the following say that Ints n is a subset of Int and of Ints m
(App (Q (IC "Predef") (IC "Ints")) (EInt n),
App (Q (IC "Predef") (IC "Ints")) (EInt m)) -> m >= n
diff --git a/src/GF/Compile/Optimize.hs b/src/GF/Compile/Optimize.hs
index 65ccc056f..40514b75c 100644
--- a/src/GF/Compile/Optimize.hs
+++ b/src/GF/Compile/Optimize.hs
@@ -63,7 +63,7 @@ evalModule oopts ms mo@(name,mod) = case mod of
MGrammar (mod' : _) <- foldM evalOp gr ids
return $ mod'
MTConcrete a -> do
- js' <- mapMTree (evalCncInfo oopts gr0 name a) js
+ js' <- mapMTree (evalCncInfo oopts gr name a) js ---- <- gr0 6/12/2005
return $ (name, ModMod (Module mt st fs me ops js'))
_ -> return $ (name,mod)