diff options
Diffstat (limited to 'frontend/transform.dcl')
-rw-r--r-- | frontend/transform.dcl | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/frontend/transform.dcl b/frontend/transform.dcl index 299e5f2..1d290a3 100644 --- a/frontend/transform.dcl +++ b/frontend/transform.dcl @@ -15,13 +15,18 @@ partitionateMacros :: !IndexRange !Index !PredefinedSymbol !*{# FunDef} !*{# Dcl :: UnfoldState = { us_var_heap :: !.VarHeap , us_symbol_heap :: !.ExpressionHeap - , us_opt_type_heaps :: !.Optional .TypeHeaps - , us_cleanup_info :: ![ExprInfoPtr] - , us_handle_aci_free_vars :: !AciFreeVarHandleMode + , us_opt_type_heaps :: !.Optional .TypeHeaps, + us_cleanup_info :: ![ExprInfoPtr] } - + +:: UnfoldInfo = + { ui_handle_aci_free_vars :: !AciFreeVarHandleMode, + ui_convert_module_n :: !Int, // -1 if no conversion + ui_conversion_table :: !Optional ConversionTable + } + :: AciFreeVarHandleMode = LeaveThem | RemoveThem | SubstituteThem -class unfold a :: !a !*UnfoldState -> (!a, !*UnfoldState) +class unfold a :: !a !UnfoldInfo !*UnfoldState -> (!a, !*UnfoldState) instance unfold Expression, CasePatterns |