summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2012-11-16 13:47:10 +0000
committerhallgren <hallgren@chalmers.se>2012-11-16 13:47:10 +0000
commit7d616c01b46c7a50b28c93dc25539a1ed916a536 (patch)
tree99981fbcc44746d79974b69b9444d3b77cb224b7 /src/compiler
parent67ca0a1eae3875cb72c4a89fe7d0f454722c3b59 (diff)
new-comp: rewrite f (x|y) into (f x|f y)
With this change, all languages in molto/mgl/mixture except German and Polish can be compiled.
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/GF/Compile/Compute/ConcreteNew.hs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/compiler/GF/Compile/Compute/ConcreteNew.hs b/src/compiler/GF/Compile/Compute/ConcreteNew.hs
index 49752aebb..7380cccad 100644
--- a/src/compiler/GF/Compile/Compute/ConcreteNew.hs
+++ b/src/compiler/GF/Compile/Compute/ConcreteNew.hs
@@ -265,8 +265,12 @@ vapply v vs =
vbeta bt f (v:vs) =
case (bt,v) of
- (Implicit,VImplArg v) -> vapply (f v) vs
- (Explicit, v) -> vapply (f v) vs
+ (Implicit,VImplArg v) -> ap v
+ (Explicit, v) -> ap v
+ where
+ ap (VFV avs) = VFV [vapply (f v) vs|v<-avs]
+ ap v = vapply (f v) vs
+
{-
beta env b x t (v:vs) =
case (b,v) of