projects
/
matthijs
/
master-project
/
cλash.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
32aa5de
)
Learn flattenExpr about Var expressions.
author
Matthijs Kooijman
<m.kooijman@student.utwente.nl>
Mon, 9 Feb 2009 14:53:10 +0000
(15:53 +0100)
committer
Matthijs Kooijman
<m.kooijman@student.utwente.nl>
Mon, 9 Feb 2009 14:53:10 +0000
(15:53 +0100)
Flatten.hs
patch
|
blob
|
history
diff --git
a/Flatten.hs
b/Flatten.hs
index f3057e86399a1a2d895730719dc9954b87d17e87..52316eca08a97dd07d0cfff45e555c3ab0c17aff 100644
(file)
--- a/
Flatten.hs
+++ b/
Flatten.hs
@@
-1,7
+1,9
@@
module Flatten where
import CoreSyn
import qualified Type
module Flatten where
import CoreSyn
import qualified Type
+import qualified Name
import qualified TyCon
import qualified TyCon
+import qualified Maybe
import qualified CoreUtils
import qualified Control.Monad.State as State
import qualified CoreUtils
import qualified Control.Monad.State as State
@@
-167,6
+169,15
@@
flattenExpr binds lam@(Lam b expr) = do
let binds' = (b, Left defs):binds
flattenExpr binds' expr
let binds' = (b, Left defs):binds
flattenExpr binds' expr
+flattenExpr binds (Var id) =
+ case bind of
+ Left sig_use -> return ([], sig_use)
+ Right _ -> error "Higher order functions not supported."
+ where
+ bind = Maybe.fromMaybe
+ (error $ "Argument " ++ Name.getOccString id ++ "is unknown")
+ (lookup id binds)
+
flattenExpr _ _ = do
return ([], Tuple [])
flattenExpr _ _ = do
return ([], Tuple [])