summaryrefslogtreecommitdiff
path: root/src/GF
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2007-11-09 17:24:08 +0000
committeraarne <aarne@cs.chalmers.se>2007-11-09 17:24:08 +0000
commitba735d802bd5904949de2e6d6bd9be9b32c69057 (patch)
treed146eb1c4c9064884369464a9b001a0fd207b997 /src/GF
parente394d725a49d579459006ab70e1007f1170ca2b0 (diff)
post-compute in GrammarToGFCC - what else is needed?
Diffstat (limited to 'src/GF')
-rw-r--r--src/GF/Devel/GrammarToGFCC.hs9
1 files changed, 8 insertions, 1 deletions
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