From 63783f2263143aa57ccdaa6f764a5add27b8b2b2 Mon Sep 17 00:00:00 2001 From: sjakie Date: Wed, 22 Mar 2000 16:47:31 +0000 Subject: *** empty log message *** git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@121 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d --- frontend/transform.icl | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'frontend') diff --git a/frontend/transform.icl b/frontend/transform.icl index 80a6cdd..d6972ae 100644 --- a/frontend/transform.icl +++ b/frontend/transform.icl @@ -714,13 +714,13 @@ expandMacrosInBody fi_calls {cb_args,cb_rhs} fun_defs mod_index modules es=:{es_ # (prev_calls, fun_defs, es_symbol_table) = addFunctionCallsToSymbolTable fi_calls fun_defs es_symbol_table ([rhs:rhss], fun_defs, modules, (all_calls, es)) = expand cb_rhs fun_defs mod_index modules (prev_calls, { es & es_symbol_table = es_symbol_table }) (fun_defs, es_symbol_table) = removeFunctionCallsFromSymbolTable all_calls fun_defs es.es_symbol_table - (merge_rhs, es_var_heap, es_symbol_heap, es_error) = mergeCases rhs rhss es.es_var_heap es.es_symbol_heap es.es_error - (merge_rhs, new_args, local_vars, {cos_error, cos_var_heap, cos_symbol_heap}) = determineVariablesAndRefCounts cb_args merge_rhs + (merged_rhs, es_var_heap, es_symbol_heap, es_error) = mergeCases rhs rhss es.es_var_heap es.es_symbol_heap es.es_error + (new_rhs, new_args, local_vars, {cos_error, cos_var_heap, cos_symbol_heap}) = determineVariablesAndRefCounts cb_args merged_rhs { cos_error = es_error, cos_var_heap = es_var_heap, cos_symbol_heap = es_symbol_heap } - = (new_args, merge_rhs, local_vars, all_calls, fun_defs, modules, + = (new_args, new_rhs, local_vars, all_calls, fun_defs, modules, { es & es_error = cos_error, es_var_heap = cos_var_heap, es_symbol_heap = cos_symbol_heap, es_symbol_table = es_symbol_table }) -// ---> (cb_args, cb_rhs, new_args, local_vars, merge_rhs) +// ---> ("expandMacrosInBody", (cb_args, cb_rhs, '\n'), ("merged_rhs", merged_rhs, '\n'), (new_args, new_rhs, '\n')) cContainsFreeVars :== True cContainsNoFreeVars :== False @@ -1371,11 +1371,12 @@ where instance collectVariables BoundVar where - collectVariables var=:{var_name,var_info_ptr} free_vars cos=:{cos_var_heap} + collectVariables var=:{var_name,var_info_ptr,var_expr_ptr} free_vars cos=:{cos_var_heap} #! var_info = sreadPtr var_info_ptr cos_var_heap = case var_info of VI_Alias alias - -> collectVariables alias free_vars cos + # (original, free_vars, cos) = collectVariables alias free_vars cos + -> ({ original & var_expr_ptr = var_expr_ptr }, free_vars, cos) VI_Count count is_global | count > 0 || is_global -> (var, free_vars, { cos & cos_var_heap = writePtr var_info_ptr (VI_Count (inc count) is_global) cos.cos_var_heap }) -- cgit v1.2.3