From 5222caac0548a00587b5ed5b24db16dc039a9d55 Mon Sep 17 00:00:00 2001 From: ronny Date: Thu, 4 Oct 2001 10:15:52 +0000 Subject: made merge_basic_pattern_with_patterns local function of merge_basic_patterns git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@825 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d --- frontend/mergecases.icl | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'frontend') diff --git a/frontend/mergecases.icl b/frontend/mergecases.icl index 6286013..c502a59 100644 --- a/frontend/mergecases.icl +++ b/frontend/mergecases.icl @@ -3,7 +3,7 @@ */ implementation module mergecases -import syntax, check, StdCompare, utilities; //, RWSDebug +import syntax, check, StdCompare, utilities //, RWSDebug /* cContainsFreeVars :== True @@ -325,11 +325,20 @@ where merge_algebraic_pattern_with_patterns new_pattern [] var_heap symbol_heap error = ([new_pattern], var_heap, symbol_heap, error) + merge_basic_patterns patterns [] var_heap symbol_heap error + = (patterns, var_heap, symbol_heap, error) merge_basic_patterns patterns [alg_pattern : alg_patterns] var_heap symbol_heap error # (patterns, var_heap, symbol_heap, error) = merge_basic_pattern_with_patterns alg_pattern patterns var_heap symbol_heap error = merge_basic_patterns patterns alg_patterns var_heap symbol_heap error - merge_basic_patterns patterns [] var_heap symbol_heap error - = (patterns, var_heap, symbol_heap, error) + where + merge_basic_pattern_with_patterns new_pattern [pattern=:{bp_value,bp_expr} : patterns] var_heap symbol_heap error + | new_pattern.bp_value == bp_value + # ((bp_expr, _), var_heap, symbol_heap, error) = mergeCases (bp_expr, NoPos) [(new_pattern.bp_expr, NoPos)] var_heap symbol_heap error + = ([{ pattern & bp_expr = bp_expr} : patterns], var_heap, symbol_heap, error) + # (patterns, var_heap, symbol_heap, error) = merge_basic_pattern_with_patterns new_pattern patterns var_heap symbol_heap error + = ([ pattern : patterns ], var_heap, symbol_heap, error) + merge_basic_pattern_with_patterns new_pattern [] var_heap symbol_heap error + = ([new_pattern], var_heap, symbol_heap, error) replace_variables vars expr ap_vars var_heap symbol_heap # var_heap = build_aliases vars ap_vars var_heap @@ -345,15 +354,6 @@ where merge_dynamic_patterns patterns1 patterns2 var_heap symbol_heap error = (patterns1 ++ patterns2, var_heap, symbol_heap, error) - - merge_basic_pattern_with_patterns new_pattern [pattern=:{bp_value,bp_expr} : patterns] var_heap symbol_heap error - | new_pattern.bp_value == bp_value - # ((bp_expr, _), var_heap, symbol_heap, error) = mergeCases (bp_expr, NoPos) [(new_pattern.bp_expr, NoPos)] var_heap symbol_heap error - = ([{ pattern & bp_expr = bp_expr} : patterns], var_heap, symbol_heap, error) - # (patterns, var_heap, symbol_heap, error) = merge_basic_pattern_with_patterns new_pattern patterns var_heap symbol_heap error - = ([ pattern : patterns ], var_heap, symbol_heap, error) - merge_basic_pattern_with_patterns new_pattern [] var_heap symbol_heap error - = ([new_pattern], var_heap, symbol_heap, error) replace_overloaded_symbols_in_patterns [] pd_cons_symbol pd_nil_symbol = [] -- cgit v1.2.3