aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsjakie2001-12-13 09:04:25 +0000
committersjakie2001-12-13 09:04:25 +0000
commita7e4626b064028307ea53ab82bdd8f514eb728d2 (patch)
tree676b8021996cfd4fb35b41e3466aa9fb4315fbf2
parentremoved work around for 2.0 compiler bug (diff)
Lifting of dynamic expressions repaired
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@934 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
-rw-r--r--frontend/transform.icl11
1 files changed, 11 insertions, 0 deletions
diff --git a/frontend/transform.icl b/frontend/transform.icl
index 296e145..fb931fa 100644
--- a/frontend/transform.icl
+++ b/frontend/transform.icl
@@ -83,6 +83,9 @@ where
lift (MatchExpr opt_tuple cons_symb expr) ls
# (expr, ls) = lift expr ls
= (MatchExpr opt_tuple cons_symb expr, ls)
+ lift (DynamicExpr expr) ls
+ # (expr, ls) = lift expr ls
+ = (DynamicExpr expr, ls)
lift expr ls
= (expr, ls)
@@ -188,6 +191,14 @@ where
# (dp_rhs, ls) = lift dp_rhs ls
= ({ pattern & dp_rhs = dp_rhs }, ls)
+instance lift DynamicExpr
+where
+ lift dyn=:{dyn_expr} ls
+ # (dyn_expr, ls) = lift dyn_expr ls
+ = ({ dyn & dyn_expr = dyn_expr}, ls)
+
+import RWSDebug
+
liftFunctions :: [FunctionOrMacroIndex] Int Int *{#FunDef} *{#*{#FunDef}} *(Heap VarInfo) *(Heap ExprInfo) -> .LiftState;
liftFunctions group group_index main_dcl_module_n fun_defs macro_defs var_heap expr_heap
# (contains_free_vars, lifted_function_called, fun_defs,macro_defs)