diff options
-rw-r--r-- | frontend/convertDynamics.dcl | 3 | ||||
-rw-r--r-- | frontend/convertDynamics.icl | 4 | ||||
-rw-r--r-- | frontend/frontend.icl | 36 | ||||
-rw-r--r-- | frontend/trans.dcl | 2 | ||||
-rw-r--r-- | frontend/trans.icl | 6 |
5 files changed, 24 insertions, 27 deletions
diff --git a/frontend/convertDynamics.dcl b/frontend/convertDynamics.dcl index 27d6a53..f693159 100644 --- a/frontend/convertDynamics.dcl +++ b/frontend/convertDynamics.dcl @@ -5,8 +5,9 @@ definition module convertDynamics import syntax , checksupport from transform import ::Group + :: TypeCodeVariableInfo :: DynamicValueAliasInfo convertDynamicPatternsIntoUnifyAppls :: !{# CommonDefs} !Int !*{! Group} !*{#FunDef} !*PredefinedSymbols !*VarHeap !*TypeHeaps !*ExpressionHeap (Optional *File) {# DclModule} !IclModule /* TD */ [String] - -> (!*{! Group}, !*{#FunDef}, !*PredefinedSymbols, !*{#{# CheckedTypeDef}}, !ImportedConstructors, !*VarHeap, !*TypeHeaps, !*ExpressionHeap, Optional *File) + -> (!*{!Group}, !*{#FunDef}, !*PredefinedSymbols, !*{#{#CheckedTypeDef}}, !*VarHeap, !*TypeHeaps, !*ExpressionHeap, !Optional *File) diff --git a/frontend/convertDynamics.icl b/frontend/convertDynamics.icl index 5550b66..70b350e 100644 --- a/frontend/convertDynamics.icl +++ b/frontend/convertDynamics.icl @@ -81,7 +81,7 @@ where = (wtis_type_heaps,wtis_type_defs,wtis_var_heap) convertDynamicPatternsIntoUnifyAppls :: !{# CommonDefs} !Int !*{! Group} !*{#FunDef} !*PredefinedSymbols !*VarHeap !*TypeHeaps !*ExpressionHeap (Optional *File) {# DclModule} !IclModule [String] - -> (!*{! Group}, !*{#FunDef}, !*PredefinedSymbols, !*{#{# CheckedTypeDef}}, !ImportedConstructors, !*VarHeap, !*TypeHeaps, !*ExpressionHeap, (Optional *File)) + -> (!*{!Group}, !*{#FunDef}, !*PredefinedSymbols, !*{#{#CheckedTypeDef}}, !*VarHeap, !*TypeHeaps, !*ExpressionHeap, !Optional *File) convertDynamicPatternsIntoUnifyAppls common_defs main_dcl_module_n groups fun_defs predefined_symbols var_heap type_heaps expr_heap tcl_file dcl_mods icl_mod directly_imported_dcl_modules #! (dynamic_representation,predefined_symbols) = create_dynamic_and_selector_idents common_defs predefined_symbols @@ -108,7 +108,7 @@ convertDynamicPatternsIntoUnifyAppls common_defs main_dcl_module_n groups fun_de -> abort "convertDynamicPatternsIntoUnifyAppls: error writing tcl file" -> (Yes tcl_file,type_heaps,ci_predef_symb,imported_types,ci_var_heap) - = (groups, fun_defs, ci_predef_symb, imported_types, [], ci_var_heap, type_heaps, ci_expr_heap, tcl_file) + = (groups, fun_defs, ci_predef_symb, imported_types, ci_var_heap, type_heaps, ci_expr_heap, tcl_file) where convert_groups group_nr groups dynamic_representation fun_defs_and_ci | group_nr == size groups diff --git a/frontend/frontend.icl b/frontend/frontend.icl index efe5364..0797778 100644 --- a/frontend/frontend.icl +++ b/frontend/frontend.icl @@ -152,10 +152,11 @@ frontEndInterface options mod_ident search_paths cached_dcl_modules cached_dcl_m # error = error_admin.ea_file /* - # (_,genout,files) = fopen "c:\\Clean\\Generics\\genout.icl" FWriteText files - # (fun_defs, genout) = printFunDefs fun_defs genout + # (_,genout,files) = fopen "genout" FWriteText files + # (n_fun_defs,fun_defs) = usize fun_defs + # (fun_defs, genout) = show_component [0..n_fun_defs-1] True fun_defs genout # (ok,files) = fclose genout files - | not ok = abort "could not write genout.icl" + | not ok = abort "could not write genout" */ #! ok = error_admin.ea_ok @@ -163,7 +164,7 @@ frontEndInterface options mod_ident search_paths cached_dcl_modules cached_dcl_m = (No,{},{},main_dcl_module_n,predef_symbols, hash_table, files, error, io, out, tcl_file, heaps) # (ok, fun_defs, array_instances, common_defs, imported_funs, type_def_infos, heaps, predef_symbols, error,out) - = typeProgram (components -*-> "Typing") main_dcl_module_n fun_defs icl_function_indices.ifi_specials_indices list_inferred_types icl_common icl_import icl_qualified_imports dcl_mods icl_used_module_numbers td_infos heaps predef_symbols error out + = typeProgram components main_dcl_module_n fun_defs icl_function_indices.ifi_specials_indices list_inferred_types icl_common icl_import icl_qualified_imports dcl_mods icl_used_module_numbers td_infos heaps predef_symbols error out | not ok = (No,{},{},main_dcl_module_n,predef_symbols, hash_table, files, error, io, out, tcl_file, heaps) @@ -181,7 +182,7 @@ frontEndInterface options mod_ident search_paths cached_dcl_modules cached_dcl_m = frontSyntaxTree cached_dcl_macros cached_dcl_mods main_dcl_module_n predef_symbols hash_table files error io out tcl_file icl_mod dcl_mods fun_defs components array_instances heaps - # (components, fun_defs, predef_symbols, dcl_types, used_conses_in_dynamics, var_heap, type_heaps, expression_heap, tcl_file) + # (components, fun_defs, predef_symbols, dcl_types, var_heap, type_heaps, expression_heap, tcl_file) = convertDynamicPatternsIntoUnifyAppls common_defs main_dcl_module_n (components -*-> "convertDynamics") fun_defs predef_symbols heaps.hp_var_heap heaps.hp_type_heaps heaps.hp_expression_heap tcl_file dcl_mods icl_mod directly_imported_dcl_modules @@ -199,7 +200,7 @@ frontEndInterface options mod_ident search_paths cached_dcl_modules cached_dcl_m # (def_min, fun_defs) = usize fun_defs (components, fun_defs, dcl_types, used_conses, var_heap, type_heaps, expression_heap, acc_args, error, predef_symbols) - = transformGroups cleanup_info main_dcl_module_n stdStrictLists_module_n def_min def_max (components -*-> "Transform") fun_defs acc_args common_defs imported_funs dcl_types used_conses_in_dynamics type_def_infos var_heap type_heaps expression_heap options.feo_fusion error predef_symbols + = transformGroups cleanup_info main_dcl_module_n stdStrictLists_module_n def_min def_max components fun_defs acc_args common_defs imported_funs dcl_types type_def_infos var_heap type_heaps expression_heap options.feo_fusion error predef_symbols # error_admin = {ea_file = error, ea_loc = [], ea_ok = True } # {dcl_instances,dcl_specials,dcl_gencases,dcl_type_funs} = dcl_mods.[main_dcl_module_n] @@ -355,21 +356,16 @@ showComponents comps comp_index show_types fun_defs file # (comp, comps) = comps![comp_index] # (fun_defs, file) = show_component comp.group_members show_types fun_defs (file <<< "component " <<< comp_index <<< '\n') = showComponents comps (inc comp_index) show_types fun_defs file -where - show_component [] show_types fun_defs file - = (fun_defs, file <<< '\n') - show_component [fun:funs] show_types fun_defs file - # (fun_def, fun_defs) = fun_defs![fun] - # file=file<<<fun<<<'\n' - | show_types - = show_component funs show_types fun_defs (file <<< fun_def.fun_type <<< '\n' <<< fun_def) - = show_component funs show_types fun_defs (file <<< fun_def) -// = show_component funs show_types fun_defs (file <<< fun_def.fun_ident) - -//show_components comps fun_defs = map (show_component fun_defs) comps -show_component fun_defs [] = [] -show_component fun_defs [fun:funs] = [fun_defs.[fun ---> fun] : show_component fun_defs funs] +show_component [] show_types fun_defs file + = (fun_defs, file <<< '\n') +show_component [fun:funs] show_types fun_defs file + # (fun_def, fun_defs) = fun_defs![fun] + # file=file<<<fun<<<'\n' + | show_types + = show_component funs show_types fun_defs (file <<< fun_def.fun_type <<< '\n' <<< fun_def) + = show_component funs show_types fun_defs (file <<< fun_def) +// = show_component funs show_types fun_defs (file <<< fun_def.fun_ident) showTypes :: !*{! Group} !Int !*{# FunDef} !*File -> (!*{! Group}, !*{# FunDef},!*File) showTypes comps comp_index fun_defs file diff --git a/frontend/trans.dcl b/frontend/trans.dcl index 9ad3dc0..e8ab67e 100644 --- a/frontend/trans.dcl +++ b/frontend/trans.dcl @@ -6,7 +6,7 @@ import syntax, transform import classify, partition transformGroups :: !CleanupInfo !Int !Int !Int !Int !*{!Group} !*{#FunDef} !*{!.ConsClasses} !{# CommonDefs} !{# {# FunType} } - !*ImportedTypes !ImportedConstructors !*TypeDefInfos !*VarHeap !*TypeHeaps !*ExpressionHeap !Bool !*File !*PredefinedSymbols + !*ImportedTypes !*TypeDefInfos !*VarHeap !*TypeHeaps !*ExpressionHeap !Bool !*File !*PredefinedSymbols -> (!*{!Group}, !*{#FunDef}, !*ImportedTypes, !ImportedConstructors, !*VarHeap, !*TypeHeaps, !*ExpressionHeap, !*{!ConsClasses}, !*File, !*PredefinedSymbols) convertSymbolType :: !Bool !{# CommonDefs} !SymbolType !Int !*ImportedTypes !ImportedConstructors !*TypeHeaps !*VarHeap diff --git a/frontend/trans.icl b/frontend/trans.icl index e6ba196..42ca8aa 100644 --- a/frontend/trans.icl +++ b/frontend/trans.icl @@ -3571,10 +3571,10 @@ add_let_binds free_vars rhss original_binds //@ transformGroups transformGroups :: !CleanupInfo !Int !Int !Int !Int !*{!Group} !*{#FunDef} !*{!.ConsClasses} !{# CommonDefs} !{# {# FunType} } - !*ImportedTypes !ImportedConstructors !*TypeDefInfos !*VarHeap !*TypeHeaps !*ExpressionHeap !Bool !*File !*PredefinedSymbols + !*ImportedTypes !*TypeDefInfos !*VarHeap !*TypeHeaps !*ExpressionHeap !Bool !*File !*PredefinedSymbols -> (!*{!Group}, !*{#FunDef}, !*ImportedTypes, !ImportedConstructors, !*VarHeap, !*TypeHeaps, !*ExpressionHeap, !*{!ConsClasses}, !*File, !*PredefinedSymbols) transformGroups cleanup_info main_dcl_module_n ro_StdStrictLists_module_n def_min def_max groups fun_defs cons_args common_defs imported_funs - imported_types collected_imports type_def_infos var_heap type_heaps symbol_heap compile_with_fusion error predef_symbols + imported_types type_def_infos var_heap type_heaps symbol_heap compile_with_fusion error predef_symbols #! nr_of_funs = size fun_defs # initial_ti = { ti_fun_defs = fun_defs @@ -3594,7 +3594,7 @@ transformGroups cleanup_info main_dcl_module_n ro_StdStrictLists_module_n def_mi } # groups = [group \\ group <-: groups] # (groups, imported_types, collected_imports, fun_indices_with_abs_syn_types, ti) - = transform_groups 0 groups [] common_defs imported_funs imported_types collected_imports [] initial_ti + = transform_groups 0 groups [] common_defs imported_funs imported_types [] [] initial_ti # groups = {group \\ group <- reverse groups} {ti_fun_defs,ti_new_functions,ti_var_heap,ti_symbol_heap,ti_fun_heap,ti_next_fun_nr,ti_type_heaps,ti_cleanup_info} = ti |