diff options
author | alimarin | 2001-09-06 13:48:05 +0000 |
---|---|---|
committer | alimarin | 2001-09-06 13:48:05 +0000 |
commit | cfed61173421d3e939a7b8f11a045cc69171afe1 (patch) | |
tree | d8bcf3f19241cc735ccee4813ca15f88d6a22a0d /frontend | |
parent | add symbol_heap to empty_cache (diff) |
added command line flag to enable generics
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@755 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend')
-rw-r--r-- | frontend/compilerSwitches.dcl | 2 | ||||
-rw-r--r-- | frontend/compilerSwitches.icl | 2 | ||||
-rw-r--r-- | frontend/frontend.dcl | 7 | ||||
-rw-r--r-- | frontend/frontend.icl | 33 | ||||
-rw-r--r-- | frontend/generics.icl | 13 | ||||
-rw-r--r-- | frontend/parse.dcl | 2 | ||||
-rw-r--r-- | frontend/parse.icl | 12 | ||||
-rw-r--r-- | frontend/postparse.dcl | 2 | ||||
-rw-r--r-- | frontend/postparse.icl | 34 |
9 files changed, 55 insertions, 52 deletions
diff --git a/frontend/compilerSwitches.dcl b/frontend/compilerSwitches.dcl index 5ea81c5..e976b72 100644 --- a/frontend/compilerSwitches.dcl +++ b/frontend/compilerSwitches.dcl @@ -1,7 +1,5 @@ definition module compilerSwitches -SwitchGenerics on off :== on - PA_BUG on off :== off switch_import_syntax one_point_three two_point_zero :== one_point_three diff --git a/frontend/compilerSwitches.icl b/frontend/compilerSwitches.icl index 191ffa2..5b307dc 100644 --- a/frontend/compilerSwitches.icl +++ b/frontend/compilerSwitches.icl @@ -1,7 +1,5 @@ implementation module compilerSwitches -SwitchGenerics on off :== on - PA_BUG on off :== off switch_import_syntax one_point_three two_point_zero :== one_point_three diff --git a/frontend/frontend.dcl b/frontend/frontend.dcl index 33e41b9..5f9f71d 100644 --- a/frontend/frontend.dcl +++ b/frontend/frontend.dcl @@ -4,6 +4,11 @@ from scanner import SearchPaths from general import Optional, Yes, No import checksupport, transform, overloading +:: FrontEndOptions + = { feo_up_to_phase :: !FrontEndPhase + , feo_generics :: !Bool + } + :: FrontEndSyntaxTree = { fe_icl :: !IclModule , fe_dcls :: !{#DclModule} @@ -22,5 +27,5 @@ import checksupport, transform, overloading | FrontEndPhaseConvertModules | FrontEndPhaseAll -frontEndInterface :: !FrontEndPhase !Ident !SearchPaths !{#DclModule} !{#FunDef} !(Optional Bool) !*PredefinedSymbols !*HashTable !*Files !*File !*File !*File (!Optional !*File) !*Heaps +frontEndInterface :: !FrontEndOptions !Ident !SearchPaths !{#DclModule} !{#FunDef} !(Optional Bool) !*PredefinedSymbols !*HashTable !*Files !*File !*File !*File (!Optional !*File) !*Heaps -> ( !Optional *FrontEndSyntaxTree,!.{# FunDef },!Int,!Int,!*PredefinedSymbols, !*HashTable, !*Files, !*File, !*File, !*File, !Optional !*File, !*Heaps) diff --git a/frontend/frontend.icl b/frontend/frontend.icl index f572a9b..32815ff 100644 --- a/frontend/frontend.icl +++ b/frontend/frontend.icl @@ -3,6 +3,11 @@ implementation module frontend import scanner, parse, postparse, check, type, trans, convertcases, overloading, utilities, convertDynamics, convertimportedtypes, checkKindCorrectness, compilerSwitches, analtypes, generics +:: FrontEndOptions + = { feo_up_to_phase :: !FrontEndPhase + , feo_generics :: !Bool + } + :: FrontEndSyntaxTree = { fe_icl :: !IclModule , fe_dcls :: !{#DclModule} @@ -73,19 +78,19 @@ frontSyntaxTree cached_functions_and_macros n_functions_and_macros_in_dcl_module //import StdDebug //frontEndInterface :: !FrontEndPhase !Ident !SearchPaths !{#DclModule} !{#FunDef} !(Optional Bool) !*PredefinedSymbols !*HashTable !*Files !*File !*File !*File !*File !*Heaps -> ( !Optional *FrontEndSyntaxTree,!.{# FunDef },!Int,!Int,!*PredefinedSymbols, !*HashTable, !*Files, !*File !*File, !*File, !*File, !*Heaps) -frontEndInterface :: !FrontEndPhase !Ident !SearchPaths !{#DclModule} !{#FunDef} !(Optional Bool) !*PredefinedSymbols !*HashTable !*Files !*File !*File !*File (!Optional !*File) !*Heaps +frontEndInterface :: !FrontEndOptions !Ident !SearchPaths !{#DclModule} !{#FunDef} !(Optional Bool) !*PredefinedSymbols !*HashTable !*Files !*File !*File !*File (!Optional !*File) !*Heaps -> ( !Optional *FrontEndSyntaxTree,!.{# FunDef },!Int,!Int,!*PredefinedSymbols, !*HashTable, !*Files, !*File, !*File, !*File, !Optional !*File, !*Heaps) -frontEndInterface upToPhase mod_ident search_paths dcl_modules functions_and_macros list_inferred_types predef_symbols hash_table files error io out tcl_file heaps +frontEndInterface options mod_ident search_paths dcl_modules functions_and_macros list_inferred_types predef_symbols hash_table files error io out tcl_file heaps // # files = trace_n ("Compiling "+++mod_ident.id_name) files # (ok, mod, hash_table, error, predef_symbols, files) - = wantModule cWantIclFile mod_ident NoPos (hash_table /* ---> ("Parsing:", mod_ident)*/) error search_paths predef_symbols files + = wantModule cWantIclFile mod_ident NoPos options.feo_generics(hash_table /* ---> ("Parsing:", mod_ident)*/) error search_paths predef_symbols files | not ok = (No,{},0,0,predef_symbols, hash_table, files, error, io, out, tcl_file, heaps) # cached_module_idents = [dcl_mod.dcl_name \\ dcl_mod<-:dcl_modules] # (ok, mod, global_fun_range, mod_functions, optional_dcl_mod, modules, dcl_module_n_in_cache,n_functions_and_macros_in_dcl_modules,hash_table, error, predef_symbols, files) - = scanModule (mod -*-> "Scanning") cached_module_idents (size functions_and_macros) hash_table error search_paths predef_symbols files + = scanModule (mod -*-> "Scanning") cached_module_idents (size functions_and_macros) options.feo_generics hash_table error search_paths predef_symbols files /* JVG: */ // # hash_table = {hash_table & hte_entries={}} # hash_table = remove_icl_symbols_from_hash_table hash_table @@ -120,7 +125,7 @@ frontEndInterface upToPhase mod_ident search_paths dcl_modules functions_and_mac type_heaps = heaps.hp_type_heaps fun_defs = icl_functions - | upToPhase == FrontEndPhaseCheck + | options.feo_up_to_phase == FrontEndPhaseCheck # array_instances = {ali_array_first_instance_indices=[],ali_list_first_instance_indices=[],ali_tail_strict_list_first_instance_indices=[],ali_instances_range={ir_from=0,ir_to=0}} = frontSyntaxTree cached_functions_and_macros n_functions_and_macros_in_dcl_modules main_dcl_module_n predef_symbols hash_table files error io out tcl_file icl_mod dcl_mods fun_defs components array_instances optional_dcl_icl_conversions global_fun_range heaps @@ -142,12 +147,20 @@ frontEndInterface upToPhase mod_ident search_paths dcl_modules functions_and_mac #! (components, ti_common_defs, fun_defs, generic_range, td_infos, heaps, hash_table, predef_symbols, dcl_mods, optional_dcl_icl_conversions, error_admin) = +/* SwitchGenerics (convertGenerics components main_dcl_module_n ti_common_defs fun_defs td_infos heaps hash_table predef_symbols dcl_mods optional_dcl_icl_conversions error_admin) (components, ti_common_defs, fun_defs, {ir_to=0,ir_from=0}, td_infos, heaps, hash_table, predef_symbols, dcl_mods, optional_dcl_icl_conversions, error_admin) - +*/ + case options.feo_generics of + True -> + convertGenerics + components main_dcl_module_n ti_common_defs fun_defs td_infos + heaps hash_table predef_symbols dcl_mods optional_dcl_icl_conversions error_admin + False -> + (components, ti_common_defs, fun_defs, {ir_to=0,ir_from=0}, td_infos, heaps, hash_table, predef_symbols, dcl_mods, optional_dcl_icl_conversions, error_admin) # (icl_common, ti_common_defs) = replace copied_ti_common_defs main_dcl_module_n saved_main_dcl_common with @@ -178,7 +191,7 @@ frontEndInterface upToPhase mod_ident search_paths dcl_modules functions_and_mac // (components, fun_defs, out) = showComponents components 0 True fun_defs out // (fun_defs, error) = showFunctions array_instances fun_defs error - | upToPhase == FrontEndPhaseTypeCheck + | options.feo_up_to_phase == FrontEndPhaseTypeCheck = frontSyntaxTree cached_functions_and_macros n_functions_and_macros_in_dcl_modules main_dcl_module_n predef_symbols hash_table files error io out tcl_file icl_mod dcl_mods fun_defs components array_instances optional_dcl_icl_conversions global_fun_range heaps # (components, fun_defs, predef_symbols, dcl_types, used_conses_in_dynamics, var_heap, type_heaps, expression_heap, tcl_file) @@ -187,7 +200,7 @@ frontEndInterface upToPhase mod_ident search_paths dcl_modules functions_and_mac // # (components, fun_defs, error) = showComponents3 components 0 False fun_defs error // (components, fun_defs, error) = showComponents components 0 True fun_defs error - | upToPhase == FrontEndPhaseConvertDynamics + | options.feo_up_to_phase == FrontEndPhaseConvertDynamics # heaps = {hp_var_heap=var_heap, hp_type_heaps=type_heaps, hp_expression_heap=expression_heap} = frontSyntaxTree cached_functions_and_macros n_functions_and_macros_in_dcl_modules main_dcl_module_n predef_symbols hash_table files error io out tcl_file icl_mod dcl_mods fun_defs components array_instances optional_dcl_icl_conversions global_fun_range heaps @@ -206,7 +219,7 @@ frontEndInterface upToPhase mod_ident search_paths dcl_modules functions_and_mac (components, fun_defs, dcl_types, used_conses, var_heap, type_heaps, expression_heap) = transformGroups cleanup_info main_dcl_module_n stdStrictLists_module_n (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 - | upToPhase == FrontEndPhaseTransformGroups + | options.feo_up_to_phase == FrontEndPhaseTransformGroups # heaps = {hp_var_heap=var_heap, hp_type_heaps=type_heaps, hp_expression_heap=expression_heap} = frontSyntaxTree cached_functions_and_macros n_functions_and_macros_in_dcl_modules main_dcl_module_n predef_symbols hash_table files error io out tcl_file icl_mod dcl_mods fun_defs components array_instances optional_dcl_icl_conversions global_fun_range heaps @@ -215,7 +228,7 @@ frontEndInterface upToPhase mod_ident search_paths dcl_modules functions_and_mac // (components, fun_defs, out) = showComponents components 0 False fun_defs out - | upToPhase == FrontEndPhaseConvertModules + | options.feo_up_to_phase == FrontEndPhaseConvertModules # heaps = {hp_var_heap=var_heap, hp_type_heaps=type_heaps, hp_expression_heap=expression_heap} = frontSyntaxTree cached_functions_and_macros n_functions_and_macros_in_dcl_modules main_dcl_module_n predef_symbols hash_table files error io out tcl_file icl_mod dcl_mods fun_defs components array_instances optional_dcl_icl_conversions global_fun_range heaps diff --git a/frontend/generics.icl b/frontend/generics.icl index c832ac2..fde0048 100644 --- a/frontend/generics.icl +++ b/frontend/generics.icl @@ -2071,7 +2071,6 @@ where #! kinds = init ks #! arity = length kinds - #! num_gen_vars = lengh gvs // build lifting argumnents #! (args, th) = mapSt (build_arg agvs st postfix) (zip2 kinds [1..arity]) th @@ -2113,7 +2112,6 @@ where # postfix = postfix +++ "_" +++ toString arg_num #! gavs = [av \\ {atv_attribute=TA_Var av} <- agvs] - # num_gen_vars = lengh gvs #! th = clearSymbolType st th #! th = foldSt subst_av_for_self (st.st_attr_vars ++ gavs) th @@ -2377,17 +2375,6 @@ buildIsoRecord # (iso_expr, gs_heaps) = buildISO to_expr from_expr gs_predefs gs_heaps # fun_def = makeFunction def_sym group_index [] iso_expr No [] [from_fun.ds_index, to_fun.ds_index] NoPos = (fun_def, {gs & gs_heaps = gs_heaps}) -where - build_fun_expr mod_index fun_def heaps=:{hp_expression_heap} - # (expr_info_ptr, hp_expression_heap) = newPtr EI_Empty hp_expression_heap - # global_index = {glob_module = mod_index/*gs_maindcl_module_n???*/, glob_object = fun_def.fun_index} - # fun_symb = { - symb_name = fun_def.fun_symb, - symb_kind = SK_Function global_index, - symb_arity = 0 //fun_def.fun_arity - } - # fun_expr = App {app_symb = fun_symb, app_args = [], app_info_ptr = expr_info_ptr} - = (fun_expr, {heaps & hp_expression_heap = hp_expression_heap}) // convert a type to ot's generic representation buildIsoTo :: !DefinedSymbol !Int !Int !CheckedTypeDef ![DefinedSymbol] !*GenericState diff --git a/frontend/parse.dcl b/frontend/parse.dcl index 8bf549b..6f0659f 100644 --- a/frontend/parse.dcl +++ b/frontend/parse.dcl @@ -10,5 +10,5 @@ import syntax, hashtable, scanner, predef cWantIclFile :== True cWantDclFile :== False -wantModule :: !Bool !Ident !Position !*HashTable !*File !SearchPaths !*PredefinedSymbols !*Files +wantModule :: !Bool !Ident !Position !Bool !*HashTable !*File !SearchPaths !*PredefinedSymbols !*Files -> (!Bool, !ParsedModule, !*HashTable, !*File, !*PredefinedSymbols, !*Files) diff --git a/frontend/parse.icl b/frontend/parse.icl index 567aae1..2955d9c 100644 --- a/frontend/parse.icl +++ b/frontend/parse.icl @@ -48,6 +48,7 @@ Conventions: , ps_skipping :: !Bool , ps_hash_table :: !*HashTable , ps_pre_def_symbols :: !*PredefinedSymbols + , ps_support_generics :: !Bool // AA: compiler option "-generics" } /* appScanState :: (ScanState -> ScanState) !ParseState -> ParseState @@ -288,9 +289,9 @@ isClassOrInstanceDefsContext context :== context bitand cClassOrInstanceDefsCont cWantIclFile :== True cWantDclFile :== False -wantModule :: !Bool !Ident !Position !*HashTable !*File !SearchPaths !*PredefinedSymbols !*Files +wantModule :: !Bool !Ident !Position !Bool !*HashTable !*File !SearchPaths !*PredefinedSymbols !*Files -> (!Bool, !ParsedModule, !*HashTable, !*File, !*PredefinedSymbols, !*Files) -wantModule iclmodule file_id=:{id_name} import_file_position hash_table error searchPaths pre_def_symbols files +wantModule iclmodule file_id=:{id_name} import_file_position support_generics hash_table error searchPaths pre_def_symbols files = case openScanner file_name searchPaths files of (Yes scanState, files) # hash_table=set_hte_mark (if iclmodule 1 0) hash_table @@ -312,6 +313,7 @@ where , ps_skipping = False , ps_hash_table = hash_table , ps_pre_def_symbols = pre_def_symbols + , ps_support_generics = support_generics } pState = verify_name mod_name id_name file_name pState (mod_ident, pState) = stringToIdent mod_name IC_Module pState @@ -1336,7 +1338,7 @@ optionalCoercions pState wantGenericDefinition :: !ParseContext !Position !ParseState -> (!ParsedDefinition, !ParseState) wantGenericDefinition context pos pState - | SwitchGenerics False True + | not pState.ps_support_generics = (PD_Erroneous, parseError "generic definition" No "support for generics is disabled in the compiler. " pState) # (name, pState) = want_name pState | name == "" @@ -3365,9 +3367,9 @@ wantBeginGroup msg pState _ -> parseError msg (Yes token) "begin group without layout, {," pState // AA.. -wantKind :: !ParseState -> !(!TypeKind, ParseState) +wantKind :: !ParseState -> !(!TypeKind, !ParseState) wantKind pState - | SwitchGenerics False True + | not pState.ps_support_generics = (KindConst, parseError "kind" No "support for generics is disabled in the compiler. " pState) # (token, pState) = nextToken TypeContext pState # (kind, pState) = want_simple_kind token pState diff --git a/frontend/postparse.dcl b/frontend/postparse.dcl index eb388b7..e0fa317 100644 --- a/frontend/postparse.dcl +++ b/frontend/postparse.dcl @@ -4,5 +4,5 @@ import StdEnv import syntax, parse, predef -scanModule :: !ParsedModule ![Ident] !Int !*HashTable !*File !SearchPaths !*PredefinedSymbols !*Files +scanModule :: !ParsedModule ![Ident] !Int !Bool !*HashTable !*File !SearchPaths !*PredefinedSymbols !*Files -> (!Bool, !ScannedModule, !IndexRange, ![FunDef], !Optional ScannedModule, ![ScannedModule],!Int,!Int,!*HashTable, !*File, !*PredefinedSymbols, !*Files) diff --git a/frontend/postparse.icl b/frontend/postparse.icl index 09b97ff..a8c53a0 100644 --- a/frontend/postparse.icl +++ b/frontend/postparse.icl @@ -1002,25 +1002,25 @@ transformArrayDenot exprs pi [{bind_dst=toParsedExpr i pi, bind_src=expr} \\ expr <- exprs & i <- [0..]] pi -scanModules :: [ParsedImport] [ScannedModule] [Ident] SearchPaths *Files *CollectAdmin -> (Bool, [ScannedModule], *Files, *CollectAdmin) -scanModules [] parsed_modules cached_modules searchPaths files ca +scanModules :: [ParsedImport] [ScannedModule] [Ident] SearchPaths Bool *Files *CollectAdmin -> (Bool, [ScannedModule], *Files, *CollectAdmin) +scanModules [] parsed_modules cached_modules searchPaths support_generics files ca = (True, parsed_modules, files, ca) -scanModules [{import_module,import_symbols,import_file_position} : mods] parsed_modules cached_modules searchPaths files ca +scanModules [{import_module,import_symbols,import_file_position} : mods] parsed_modules cached_modules searchPaths support_generics files ca | in_cache import_module cached_modules - = scanModules mods parsed_modules cached_modules searchPaths files ca + = scanModules mods parsed_modules cached_modules searchPaths support_generics files ca # (found_module,mod_type) = try_to_find import_module parsed_modules | found_module = case mod_type of MK_NoMainDcl # ca = postParseError import_file_position ("main module \'"+++import_module.id_name+++"\' does not have a definition module") ca - # (_,parsed_modules,files,ca) = scanModules mods parsed_modules cached_modules searchPaths files ca + # (_,parsed_modules,files,ca) = scanModules mods parsed_modules cached_modules searchPaths support_generics files ca -> (False,parsed_modules,files,ca) _ - -> scanModules mods parsed_modules cached_modules searchPaths files ca + -> scanModules mods parsed_modules cached_modules searchPaths support_generics files ca # (succ, parsed_modules, files, ca) - = parseAndScanDclModule import_module import_file_position parsed_modules cached_modules searchPaths files ca + = parseAndScanDclModule import_module import_file_position parsed_modules cached_modules searchPaths support_generics files ca (mods_succ, parsed_modules, files, ca) - = scanModules mods parsed_modules cached_modules searchPaths files ca + = scanModules mods parsed_modules cached_modules searchPaths support_generics files ca = (succ && mods_succ, parsed_modules, files, ca) where in_cache mod_id [] @@ -1043,15 +1043,15 @@ MakeEmptyModule name mod_type { def_types = [], def_constructors = [], def_selectors = [], def_classes = [], def_macros = { ir_from = 0, ir_to = 0 }, def_members = [], def_funtypes = [], def_instances = [], /* AA */ def_generics = [] } } -parseAndScanDclModule :: !Ident !Position ![ScannedModule] ![Ident] !SearchPaths !*Files !*CollectAdmin +parseAndScanDclModule :: !Ident !Position ![ScannedModule] ![Ident] !SearchPaths !Bool !*Files !*CollectAdmin -> *(!Bool, ![ScannedModule], !*Files, !*CollectAdmin) -parseAndScanDclModule dcl_module import_file_position parsed_modules cached_modules searchPaths files ca +parseAndScanDclModule dcl_module import_file_position parsed_modules cached_modules searchPaths support_generics files ca # {ca_error, ca_fun_count, ca_rev_fun_defs, ca_predefs, ca_u_predefs, ca_hash_table} = ca hash_table = ca_hash_table pea_file = ca_error.pea_file predefs = ca_u_predefs - # (parse_ok, mod, hash_table, err_file, predefs, files) = wantModule cWantDclFile dcl_module import_file_position hash_table pea_file searchPaths predefs files + # (parse_ok, mod, hash_table, err_file, predefs, files) = wantModule cWantDclFile dcl_module import_file_position support_generics hash_table pea_file searchPaths predefs files # ca = {ca_hash_table=hash_table, ca_error={pea_file=err_file,pea_ok=True}, ca_u_predefs=predefs, ca_fun_count=ca_fun_count, ca_rev_fun_defs=ca_rev_fun_defs, ca_predefs=ca_predefs} | parse_ok = scan_dcl_module mod parsed_modules searchPaths files ca @@ -1070,12 +1070,12 @@ where mod = { mod & mod_imports = imports, mod_imported_objects = imported_objects, mod_defs = { defs & def_macros = range }} (import_ok, parsed_modules, files, ca) - = scanModules imports [mod : parsed_modules] cached_modules searchPaths files ca + = scanModules imports [mod : parsed_modules] cached_modules searchPaths support_generics files ca = (pea_ok && import_ok, parsed_modules, files, ca) -scanModule :: !ParsedModule ![Ident] !Int !*HashTable !*File !SearchPaths !*PredefinedSymbols !*Files +scanModule :: !ParsedModule ![Ident] !Int !Bool !*HashTable !*File !SearchPaths !*PredefinedSymbols !*Files -> (!Bool, !ScannedModule, !IndexRange, ![FunDef], !Optional ScannedModule, ![ScannedModule],!Int,!Int,!*HashTable, !*File, !*PredefinedSymbols, !*Files) -scanModule mod=:{mod_name,mod_type,mod_defs = pdefs} cached_modules first_new_function_or_macro_index hash_table err_file searchPaths predefs files +scanModule mod=:{mod_name,mod_type,mod_defs = pdefs} cached_modules first_new_function_or_macro_index support_generics hash_table err_file searchPaths predefs files # (predefIdents, predefs) = SelectPredefinedIdents predefs # ca = { ca_error = {pea_file = err_file, pea_ok = True} , ca_fun_count = first_new_function_or_macro_index @@ -1090,7 +1090,7 @@ scanModule mod=:{mod_name,mod_type,mod_defs = pdefs} cached_modules first_new_fu (import_dcl_ok, optional_parsed_dcl_mod,dcl_module_n,parsed_modules, cached_modules,files, ca) = scan_main_dcl_module mod_name mod_type files ca (import_dcls_ok, parsed_modules, files, ca) - = scanModules imports parsed_modules cached_modules searchPaths files ca + = scanModules imports parsed_modules cached_modules searchPaths support_generics files ca (pea_dcl_ok,optional_dcl_mod,ca) = collect_main_dcl_module optional_parsed_dcl_mod dcl_module_n ca @@ -1142,7 +1142,7 @@ where hash_table = ca_hash_table pea_file = ca_error.pea_file predefs = ca_u_predefs - # (parse_ok, mod, hash_table, err_file, predefs, files) = wantModule cWantDclFile mod_name NoPos hash_table pea_file searchPaths predefs files + # (parse_ok, mod, hash_table, err_file, predefs, files) = wantModule cWantDclFile mod_name NoPos support_generics hash_table pea_file searchPaths predefs files # ca = {ca_hash_table=hash_table, ca_error={pea_file=err_file,pea_ok=True}, ca_u_predefs=predefs, ca_fun_count=ca_fun_count, ca_rev_fun_defs=ca_rev_fun_defs, ca_predefs=ca_predefs} | not parse_ok = (False, No,NoIndex, [],cached_modules, files, ca) @@ -1150,7 +1150,7 @@ where # (_, defs, imports, imported_objects, ca) = reorganiseDefinitions False pdefs 0 0 0 0 ca # mod = { mod & mod_imports = imports, mod_imported_objects = imported_objects, mod_defs = defs} # cached_modules = [mod.mod_name:cached_modules] - # (import_ok, parsed_modules, files, ca) = scanModules imports [] cached_modules searchPaths files ca + # (import_ok, parsed_modules, files, ca) = scanModules imports [] cached_modules searchPaths support_generics files ca = (import_ok, Yes mod, NoIndex,parsed_modules, cached_modules,files, ca) collect_main_dcl_module (Yes mod=:{mod_defs=defs}) dcl_module_n ca |