diff options
| author | kr.angelov <kr.angelov@gmail.com> | 2014-10-14 11:15:18 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@gmail.com> | 2014-10-14 11:15:18 +0000 |
| commit | ac288386c44bdfab783ae2cdc0882d411a9c6b00 (patch) | |
| tree | 5ed4e7aecc60b2066188a25f6e36654f52bd2925 /src/compiler/GF/Compile/GenerateBC.hs | |
| parent | b5cc77aea18e5855e95ddc1fb67039d99a2e956a (diff) | |
the compiler now allows + to be used as a floating point addition in the abstract syntax
Diffstat (limited to 'src/compiler/GF/Compile/GenerateBC.hs')
| -rw-r--r-- | src/compiler/GF/Compile/GenerateBC.hs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/compiler/GF/Compile/GenerateBC.hs b/src/compiler/GF/Compile/GenerateBC.hs index a121a3d5e..1f1e81ab9 100644 --- a/src/compiler/GF/Compile/GenerateBC.hs +++ b/src/compiler/GF/Compile/GenerateBC.hs @@ -131,6 +131,11 @@ compileFun gr arity st vs (Let (x, (_, e1)) e2) h0 bs args = let (h1,bs1,arg,is1) = compileLambda gr st vs [] e1 h0 bs (h2,bs2,is2) = compileFun gr arity st ((x,arg):vs) e2 h1 bs1 args in (h2,bs2,is1++is2) +compileFun gr arity st vs (Glue e1 e2) h0 bs args = + let (h1,bs1,arg1,is1) = compileArg gr st vs e1 h0 bs + (h2,bs2,arg2,is2) = compileArg gr st vs e2 h1 bs1 + (st1,is3) = pushArgs st [arg2,arg1] + in (h2,bs2,is1++is2++is3++[ADD]) compileFun gr arity st vs e _ _ _ = error (show e) compileArg gr st vs (Q(m,id)) h0 bs = |
