aboutsummaryrefslogtreecommitdiff
path: root/frontend/postparse.icl
diff options
context:
space:
mode:
authorjohnvg2012-10-08 12:37:41 +0000
committerjohnvg2012-10-08 12:37:41 +0000
commit73470625e3651f773b0c4cdbe7db714fc3491804 (patch)
tree5e69eb572290b36288278f66f856cf00a410ad0e /frontend/postparse.icl
parentadd tsvn:logminsize 1 property (diff)
search and open file before calling wantModule
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2184 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/postparse.icl')
-rw-r--r--frontend/postparse.icl18
1 files changed, 16 insertions, 2 deletions
diff --git a/frontend/postparse.icl b/frontend/postparse.icl
index 09de749..b1e3b7c 100644
--- a/frontend/postparse.icl
+++ b/frontend/postparse.icl
@@ -1035,7 +1035,14 @@ parseAndScanDclModule :: !Ident !Position ![ScannedModule] ![Ident] !SearchPaths
-> *(!Bool, ![ScannedModule],!*Files, !*CollectAdmin)
parseAndScanDclModule dcl_module import_file_position parsed_modules cached_modules searchPaths support_generics support_dynamics modtimefunction files ca
# {ca_error, ca_hash_table} = ca
- # (parse_ok,dynamic_type_used,mod, ca_hash_table, err_file, files) = wantModule cWantDclFile dcl_module import_file_position support_generics ca_hash_table ca_error.pea_file searchPaths modtimefunction files
+ # (opt_file_dir_time,files) = fopenInSearchPaths dcl_module.id_name ".dcl" searchPaths FReadData modtimefunction files
+ | case opt_file_dir_time of No -> True; _ -> False
+ # err_file = moduleCouldNotBeImportedError False dcl_module import_file_position ca_error.pea_file
+ # ca & ca_error={pea_file=err_file,pea_ok=True}
+ = (False, [MakeEmptyModule dcl_module MK_None: parsed_modules],files, ca)
+ # (Yes (mod_file,mod_dir,mod_time)) = opt_file_dir_time
+ # (parse_ok,dynamic_type_used,mod, ca_hash_table, err_file, files)
+ = wantModule mod_file mod_time cWantDclFile dcl_module import_file_position support_generics ca_hash_table ca_error.pea_file files
# ca = {ca & ca_hash_table=ca_hash_table, ca_error={pea_file=err_file,pea_ok=True} }
| parse_ok
= scan_dcl_module dcl_module mod parsed_modules searchPaths modtimefunction files ca
@@ -1125,7 +1132,14 @@ where
| module_n_in_cache<>NoIndex
= (True,No,module_n_in_cache,[],cached_modules,files,ca)
# {ca_error, ca_hash_table} = ca
- # (parse_ok,dynamic_type_used,mod, hash_table, err_file, /*predefs,*/ files) = wantModule cWantDclFile mod_ident NoPos support_generics ca_hash_table ca_error.pea_file searchPaths modtimefunction files
+ # (opt_file_dir_time,files) = fopenInSearchPaths mod_ident.id_name ".dcl" searchPaths FReadData modtimefunction files
+ | case opt_file_dir_time of No -> True; _ -> False
+ # err_file = moduleCouldNotBeImportedError False mod_ident NoPos ca_error.pea_file
+ # ca & ca_error={pea_file=err_file,pea_ok=True}
+ = (False, No,NoIndex, [],cached_modules, files, ca)
+ # (Yes (mod_file,mod_dir,mod_time)) = opt_file_dir_time
+ # (parse_ok,dynamic_type_used,mod, hash_table, err_file, files)
+ = wantModule mod_file mod_time cWantDclFile mod_ident NoPos support_generics ca_hash_table ca_error.pea_file files
# ca = {ca & ca_hash_table=hash_table, ca_error={pea_file=err_file,pea_ok=True}}
| not parse_ok
= (False, No,NoIndex, [],cached_modules, files, ca)