diff options
Diffstat (limited to 'frontend')
-rw-r--r-- | frontend/transform.icl | 11 |
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) |