aboutsummaryrefslogtreecommitdiff
path: root/frontend/transform.dcl
diff options
context:
space:
mode:
authorjohnvg2000-10-23 14:17:05 +0000
committerjohnvg2000-10-23 14:17:05 +0000
commit8090f9de44e1aca344975c2acf80281e0fff1ee2 (patch)
tree317bc6589ad7f4a65a2ae1e8c586acd717ad5286 /frontend/transform.dcl
parentimproving filename and line number for the following error messages: (diff)
renumber icl function and macro indices when unfolding
dcl macros in icl functions and macros removed expanded macros from groups (s.c.components) git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@259 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/transform.dcl')
-rw-r--r--frontend/transform.dcl15
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