From cfdc9932d87c71a89a4a3ff17a7e831d099b776f Mon Sep 17 00:00:00 2001 From: peb Date: Thu, 23 Jun 2005 08:43:40 +0000 Subject: [PATCH] "Committed_by_peb" --- src/GF/Conversion/GFCtoSimple.hs | 12 ++++++++---- src/GF/UseGrammar/Linear.hs | 8 ++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/GF/Conversion/GFCtoSimple.hs b/src/GF/Conversion/GFCtoSimple.hs index 88746e65a..86a4204f0 100644 --- a/src/GF/Conversion/GFCtoSimple.hs +++ b/src/GF/Conversion/GFCtoSimple.hs @@ -4,9 +4,9 @@ -- Stability : (stable) -- Portability : (portable) -- --- > CVS $Date: 2005/06/17 14:15:18 $ --- > CVS $Author: bringert $ --- > CVS $Revision: 1.9 $ +-- > CVS $Date: 2005/06/23 09:43:40 $ +-- > CVS $Author: peb $ +-- > CVS $Revision: 1.10 $ -- -- Converting GFC to SimpleGFC -- @@ -27,6 +27,7 @@ import GF.Formalism.SimpleGFC import GF.Formalism.Utilities import GF.Conversion.Types +import GF.UseGrammar.Linear (expandLinTables) import GF.Canon.GFC (CanonGrammar) import GF.Canon.MkGFC (grammar2canon) import qualified GF.Canon.Look as Look (lookupLin, allParamValues, lookupLincat) @@ -89,9 +90,12 @@ convertCat atom = error $ "GFCtoSimple.convertCat: " ++ show ato convertConcrete :: Env -> Abstract SDecl Name -> Concrete SLinType (Maybe STerm) convertConcrete gram (Abs decl args name) = Cnc ltyp largs term - where term = fmap (convertTerm gram) $ lookupLin gram $ name2fun name + where term = fmap (convertTerm gram . expandTerm gram) $ lookupLin gram $ name2fun name ltyp : largs = map (convertCType gram . lookupCType gram) (decl : args) +expandTerm :: Env -> A.Term -> A.Term +expandTerm gram term = err error id $ expandLinTables (fst gram) term + convertCType :: Env -> A.CType -> SLinType convertCType gram (A.RecType rec) = RecT [ (lbl, convertCType gram ctype) | A.Lbg lbl ctype <- rec ] convertCType gram (A.Table pt vt) = TblT (convertCType gram pt) (convertCType gram vt) diff --git a/src/GF/UseGrammar/Linear.hs b/src/GF/UseGrammar/Linear.hs index 794db670c..4df459ec6 100644 --- a/src/GF/UseGrammar/Linear.hs +++ b/src/GF/UseGrammar/Linear.hs @@ -5,9 +5,9 @@ -- Stability : (stable) -- Portability : (portable) -- --- > CVS $Date: 2005/04/21 16:23:48 $ --- > CVS $Author: bringert $ --- > CVS $Revision: 1.15 $ +-- > CVS $Date: 2005/06/23 09:43:40 $ +-- > CVS $Author: peb $ +-- > CVS $Revision: 1.16 $ -- -- Linearization for canonical GF. AR 7\/6\/2003 ----------------------------------------------------------------------------- @@ -104,7 +104,7 @@ expandLinTables gr t = case t of ts' <- mapM (comp . S t') $ vs return $ T ty [Cas [p] t | (p,t) <- zip ps ts'] FV ts -> liftM FV $ mapM exp ts - _ -> return t + _ -> composOp exp t where alls = allParamValues gr exp = expandLinTables gr