diff options
| author | aarne <aarne@cs.chalmers.se> | 2006-05-24 15:40:15 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2006-05-24 15:40:15 +0000 |
| commit | 1aa8abb074787dde7124a0e548b98dfbf670d409 (patch) | |
| tree | c834383db79c96a77ab2c9196cae836be693874b /src/GF | |
| parent | 750ef2ca30b7e075d0a0b1404ee2dc741b3f2166 (diff) | |
updated dialogue to multimodal ; bug fixes in grammar compilation
Diffstat (limited to 'src/GF')
| -rw-r--r-- | src/GF/Canon/Look.hs | 3 | ||||
| -rw-r--r-- | src/GF/Grammar/Lookup.hs | 20 |
2 files changed, 16 insertions, 7 deletions
diff --git a/src/GF/Canon/Look.hs b/src/GF/Canon/Look.hs index 1fef9b586..1ac39c695 100644 --- a/src/GF/Canon/Look.hs +++ b/src/GF/Canon/Look.hs @@ -158,6 +158,9 @@ ccompute cnc = comp [] R rs -> maybe (Bad ("unknown label" +++ prt l +++ "in" +++ prt u')) return $ lookup l [ (x,y) | Ass x y <- rs] + FV rrs -> do + mapM (\r -> compt (P r l)) rrs >>= return . FV + _ -> return $ P u' l FV ts -> liftM FV (mapM compt ts) C E b -> compt b diff --git a/src/GF/Grammar/Lookup.hs b/src/GF/Grammar/Lookup.hs index eaa44c1c9..630b9c204 100644 --- a/src/GF/Grammar/Lookup.hs +++ b/src/GF/Grammar/Lookup.hs @@ -72,19 +72,25 @@ lookupResType gr m c = do CncFun (Just (cat,(cont,val))) _ _ -> do val' <- return val ---- lockRecType cat val return $ mkProd (cont, val', []) - CncFun _ _ _ -> do + CncFun _ _ _ -> lookFunType m m c + AnyInd _ n -> lookupResType gr n c + ResParam _ -> return $ typePType + ResValue (Yes t) -> return $ qualifAnnotPar m t + _ -> Bad $ prt c +++ "has no type defined in resource" +++ prt m + _ -> Bad $ prt m +++ "is not a resource" + where + lookFunType e m c = do a <- abstractOfConcrete gr m + lookFun e m c a + lookFun e m c a = do mu <- lookupModMod gr a info <- lookupIdentInfo mu c case info of - AbsFun (Yes ty) _ -> return $ redirectTerm m ty + AbsFun (Yes ty) _ -> return $ redirectTerm e ty AbsCat _ _ -> return typeType + AnyInd _ n -> lookFun e m c n _ -> prtBad "cannot find type of reused function" c - AnyInd _ n -> lookupResType gr n c - ResParam _ -> return $ typePType - ResValue (Yes t) -> return $ qualifAnnotPar m t - _ -> Bad $ prt c +++ "has no type defined in resource" +++ prt m - _ -> Bad $ prt m +++ "is not a resource" + lookupParams :: SourceGrammar -> Ident -> Ident -> Err [Param] lookupParams gr = look True where |
