From ba735d802bd5904949de2e6d6bd9be9b32c69057 Mon Sep 17 00:00:00 2001 From: aarne Date: Fri, 9 Nov 2007 17:24:08 +0000 Subject: [PATCH] post-compute in GrammarToGFCC - what else is needed? --- src/GF/Devel/GrammarToGFCC.hs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/GF/Devel/GrammarToGFCC.hs b/src/GF/Devel/GrammarToGFCC.hs index 9c5afd6ea..87709265f 100644 --- a/src/GF/Devel/GrammarToGFCC.hs +++ b/src/GF/Devel/GrammarToGFCC.hs @@ -389,7 +389,14 @@ term2term cgr env@(labels,untyps,typs) tr = case tr of _ -> valNum $ comp tr --- this is mainly needed for parameter record projections - comp t = errVal t $ Compute.computeTerm cgr [] t + ---- was: errVal t $ Compute.computeConcreteRec cgr t + comp t = case t of + S (V typ ts) v0 -> errVal t $ do + let v = comp v0 + vs <- Look.allParamValues cgr typ + return $ maybe t (comp . (ts !!)) $ lookup v (zip vs [0 .. length vs - 1]) + P (R r) l -> maybe t (comp . snd) $ lookup l r + _ -> GM.composSafeOp comp t doVar :: Term -> STM [((Type,[Term]),(Term,Term))] Term doVar tr = case getLab tr of