diff options
| author | aarne <unknown> | 2005-05-09 08:45:23 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2005-05-09 08:45:23 +0000 |
| commit | 2805a8ee2cb0f431301b09443709b78699acd671 (patch) | |
| tree | 1a5f0cc327393b88390f9a6f9c32020b33758ccc | |
| parent | 2b059b811db03a53e8e0f8ec1a655e507851a995 (diff) | |
fix in CheckGrammar case exprs
| -rw-r--r-- | examples/gfcc/ResImper.gf | 2 | ||||
| -rw-r--r-- | src/GF/Compile/CheckGrammar.hs | 13 | ||||
| -rw-r--r-- | src/GF/Grammar/Compute.hs | 7 |
3 files changed, 14 insertions, 8 deletions
diff --git a/examples/gfcc/ResImper.gf b/examples/gfcc/ResImper.gf index 57cdf9434..c3651ae82 100644 --- a/examples/gfcc/ResImper.gf +++ b/examples/gfcc/ResImper.gf @@ -12,7 +12,7 @@ resource ResImper = open Predef in { {s = f ; p = p ; a = a} ; usePrec : PrecExp -> Prec -> Str = \x,p -> - case <<x.p,p> : Prec * Prec> of { + case <x.p,p> of { <3,4> | <2,3> | <2,4> => paren x.s ; <1,1> | <1,0> | <0,0> => x.s ; <1,_> | <0,_> => paren x.s ; diff --git a/src/GF/Compile/CheckGrammar.hs b/src/GF/Compile/CheckGrammar.hs index 59c0aec0b..05227f284 100644 --- a/src/GF/Compile/CheckGrammar.hs +++ b/src/GF/Compile/CheckGrammar.hs @@ -5,9 +5,9 @@ -- Stability : (stable) -- Portability : (portable) -- --- > CVS $Date: 2005/04/28 16:42:48 $ +-- > CVS $Date: 2005/05/09 09:45:23 $ -- > CVS $Author: aarne $ --- > CVS $Revision: 1.25 $ +-- > CVS $Revision: 1.26 $ -- -- AR 4\/12\/1999 -- 1\/4\/2000 -- 8\/9\/2001 -- 15\/5\/2002 -- 27\/11\/2002 -- 18\/6\/2003 -- @@ -565,7 +565,7 @@ checkLType env trm typ0 = do --- checkIfComplexVariantType trm typ return (FV (map fst ttys), typ) --- typ' ? - S tab arg -> do + S tab arg -> checks [ do (tab',ty) <- infer tab ty' <- comp ty case ty' of @@ -574,7 +574,12 @@ checkLType env trm typ0 = do checkEq typ t trm return (S tab' arg', t) _ -> prtFail "table type expected for applied table instead of" ty' - + , do + (arg',ty) <- infer arg + ty' <- comp ty + (tab',_) <- check tab (Table ty' typ) + return (S tab' arg', typ) + ] Let (x,(mty,def)) body -> case mty of Just ty -> do (def',ty') <- check def ty diff --git a/src/GF/Grammar/Compute.hs b/src/GF/Grammar/Compute.hs index 01ce3637d..3cc3c7dff 100644 --- a/src/GF/Grammar/Compute.hs +++ b/src/GF/Grammar/Compute.hs @@ -5,9 +5,9 @@ -- Stability : (stable) -- Portability : (portable) -- --- > CVS $Date: 2005/04/21 16:22:19 $ --- > CVS $Author: bringert $ --- > CVS $Revision: 1.15 $ +-- > CVS $Date: 2005/05/09 09:45:23 $ +-- > CVS $Author: aarne $ +-- > CVS $Revision: 1.16 $ -- -- Computation of source terms. Used in compilation and in @cc@ command. ----------------------------------------------------------------------------- @@ -168,6 +168,7 @@ computeTerm gr = comp where (Empty,_) -> return y (K a, K b) -> return $ K (a ++ b) (K a, Alts (d,vs)) -> do +---- (_, Alts (d,vs)) -> do let glx = Glue x comp g $ Alts (glx d, [(glx v,c) | (v,c) <- vs]) (Alts _, K a) -> checks [do |
