diff options
author | johnvg | 2011-05-10 13:41:36 +0000 |
---|---|---|
committer | johnvg | 2011-05-10 13:41:36 +0000 |
commit | 2a5e67f4066d2ad670e9b8b20f5090b77987d14b (patch) | |
tree | d31ff70bb25a19092679ec5087f05c22f2c76030 /portToNewSyntax/portToNewSyntax.icl | |
parent | don't use freopen to redirect stdout and stderror, (diff) |
delete portToNewSyntax
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1938 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'portToNewSyntax/portToNewSyntax.icl')
-rw-r--r-- | portToNewSyntax/portToNewSyntax.icl | 264 |
1 files changed, 0 insertions, 264 deletions
diff --git a/portToNewSyntax/portToNewSyntax.icl b/portToNewSyntax/portToNewSyntax.icl deleted file mode 100644 index 9b948d0..0000000 --- a/portToNewSyntax/portToNewSyntax.icl +++ /dev/null @@ -1,264 +0,0 @@ -implementation module portToNewSyntax - -import StdEnv, scanner, Directory, merge, checksupport - -switch_port_to_new_syntax port dont_port :== port - -cTabWidth :== 4 - -resultFolderName =: "PortedModules" - -createPortedFiles :: !String !SearchPaths !*Files -> (!Bool, !*Files) -createPortedFiles fileName searchPaths files - # (ok, files) - = case findDirOfModule fileName searchPaths files of - (No, files) - -> (False, files) - (Yes path, files) - # (ok, files) - = ensureSubDirExists path fileName files - | not ok - -> (ok, files) - # (ok1, files) - = tryToCreatePortedFile fileName "icl" path files - (ok2, files) - = tryToCreatePortedFile fileName "dcl" path files - -> (ok1&&ok2, files) - (_, files) - = fremove (RelativePath [PathDown "icl.txt"]) files - (_, files) - = fremove (RelativePath [PathDown "dcl.txt"]) files - = (ok, files) - - -tryToCreatePortedFile :: !String !String !Path !*Files -> (!Bool,!*Files) -tryToCreatePortedFile file_name suffix path ms_files - # with_suffix - = file_name+++"."+++suffix - # (old_module_filename, ms_files) - = pathToPD_String (pathAppend path [PathDown with_suffix]) ms_files - (ok, old, ms_files) = fopen old_module_filename FReadData ms_files - | not ok - = (ok, ms_files) - # (new_module_filename, ms_files) - = pathToPD_String (pathAppend path [PathDown resultFolderName, - PathDown with_suffix]) ms_files - inferred_filename = suffix+++".txt" - (ok1, inferred, ms_files) = fopen inferred_filename FReadText ms_files - (ok2, new, ms_files) = fopen new_module_filename FWriteText ms_files - | not (ok1&&ok2) - = (False, ms_files) - # (old, inferred, new) = mergeFiles old inferred new - (ok3, ms_files) = fclose old ms_files - (ok4, ms_files) = fclose inferred ms_files - (ok5, ms_files) = fclose new ms_files - = (ok3&&ok4&&ok5, ms_files) - -findDirOfModule :: !{#Char} !SearchPaths *Files -> (!Optional Path, !*Files) -findDirOfModule fileName searchPaths files - # filtered_locations - = filter (\(moduleName,pd_path) -> moduleName == fileName) searchPaths.sp_locations - | not (isEmpty filtered_locations) - # ((ok, path), files) - = pd_StringToPath (snd (hd filtered_locations)) files - | not ok - = (No, files) - = (Yes path, files) - = loop searchPaths.sp_paths (fileName+++".icl") files - where - loop :: ![String] !String !*Files -> (!Optional Path, !*Files) - loop [] _ files - = (No, files) - loop [pd_path:pd_paths] fileName files - # ((ok, path), files) - = pd_StringToPath pd_path files - | not ok - = (No, files) - # ((dir_error, _), files) - = getFileInfo (pathAppend path [PathDown fileName]) files - | dir_error == NoDirError - = (Yes path, files) - = loop pd_paths fileName files - -pathAppend (RelativePath p) x = RelativePath (p++x) -pathAppend (AbsolutePath diskname p) x = AbsolutePath diskname (p++x) - -ensureSubDirExists path fileName files - # path_result_folder = pathAppend path [PathDown resultFolderName] - ((err_code, _), files) = getFileInfo path_result_folder files - (errorCode, files) = case err_code of - NoDirError -> (NoDirError, files) - _ -> createDirectory path_result_folder files - = (errorCode==NoDirError, files) - - - - -writeExplImportsToFile :: !String ![([Declaration],a)] !{#u:DclModule} !*CheckState - -> (!{#u:DclModule},!.CheckState) -writeExplImportsToFile file_name si_explicit dcl_modules cs - # (file, cs) - = openFile file_name cs - (dcl_modules, file) - = foldSt (write_expl_import (flatten (map fst si_explicit))) (reverse si_explicit) (dcl_modules, file) - = (dcl_modules, closeFile file cs) - -write_expl_import all_expl_imp_decls (declarations, _) (dcl_modules, file) - # (declaration_strings, dcl_modules) - = mapFilterYesSt (decl_to_opt_string all_expl_imp_decls) (reverse declarations) dcl_modules - = (dcl_modules, fwriteNewSyntax declaration_strings file) - -// only for portToNewSyntax -decl_to_opt_string all_expl_imp_decls (Declaration {decl_ident, decl_index, decl_kind=STE_Imported ste_kind def_mod_index}) - dcl_modules - = imported_decl_to_opt_string all_expl_imp_decls decl_ident decl_index ste_kind def_mod_index - dcl_modules -decl_to_opt_string _ (Declaration{decl_ident, decl_kind=STE_FunctionOrMacro _}) dcl_modules - = (Yes decl_ident.id_name, dcl_modules) - -// only for portToNewSyntax -imported_decl_to_opt_string all_expl_imp_decls dcl_ident dcl_index STE_Constructor def_mod_index - dcl_modules - = (No, dcl_modules) -imported_decl_to_opt_string all_expl_imp_decls dcl_ident dcl_index STE_Member def_mod_index - dcl_modules - = (No, dcl_modules) -imported_decl_to_opt_string all_expl_imp_decls dcl_ident dcl_index STE_DclFunction def_mod_index - dcl_modules - = (Yes dcl_ident.id_name, dcl_modules) -imported_decl_to_opt_string all_expl_imp_decls dcl_ident dcl_index STE_Class def_mod_index - dcl_modules - = (Yes ("class "+++dcl_ident.id_name+++"(..)"), dcl_modules) -imported_decl_to_opt_string all_expl_imp_decls dcl_ident dcl_index (STE_Instance _) def_mod_index - dcl_modules - # ({ins_type}, dcl_modules) - = dcl_modules![def_mod_index].dcl_common.com_instance_defs.[dcl_index] - = (Yes ("instance "+++dcl_ident.id_name+++" "+++ - separated " " (map type_to_string ins_type.it_types)), dcl_modules) -imported_decl_to_opt_string all_expl_imp_decls dcl_ident dcl_index STE_Type def_mod_index - dcl_modules - # ({td_rhs}, dcl_modules) - = dcl_modules![def_mod_index].dcl_common.com_type_defs.[dcl_index] - dcl_string - = ":: "+++(case td_rhs of - AlgType constructors - -> dcl_ident.id_name+++constructor_bracket def_mod_index all_expl_imp_decls constructors - RecordType _ - -> dcl_ident.id_name+++"{..}" - _ - -> dcl_ident.id_name) - = (Yes dcl_string, dcl_modules) -imported_decl_to_opt_string all_expl_imp_decls dcl_ident dcl_index STE_Generic def_mod_index - dcl_modules - = (Yes ("generic "+++dcl_ident.id_name+++"(..)"), dcl_modules) - -// only for portToNewSyntax -type_to_string (TA {type_name} _) = possibly_replace_predef_symbols type_name.id_name -type_to_string (TB type) = toString type -type_to_string (TV {tv_name}) = tv_name.id_name -type_to_string x = abort ("bug nr 945 in module check"--->x) - -possibly_replace_predef_symbols s - | s=="_list" - = "[]" - | s % (0,5) == "_tuple" - = (toString ['(':repeatn ((toInt (s%(6, (size s) - 1))) - 1) ','])+++")" - | s=="_array" - = "{}" - | s=="_!array" - = "{!}" - | s=="_#array" - = "{#}" - = s - -instance toString BasicType - where - toString BT_Int = "Int" - toString BT_Char = "Char" - toString BT_Real = "Real" - toString BT_Bool = "Bool" - toString BT_Dynamic = "Dynamic" - toString BT_File = "File" - toString BT_World = "World" - toString _ = abort "bug nr 346 in module check" - -// only for portToNewSyntax -separated _ [] - = "" -separated separator [h:t] - = foldl (\l r->l+++separator+++r) h t - -constructor_bracket def_mod_index all_expl_imp_decls constructors - # expl_imp_constructor_strings - = [ ds_ident.id_name \\ {ds_ident} <- constructors - | is_expl_imported_constructor def_mod_index ds_ident all_expl_imp_decls ] - | isEmpty expl_imp_constructor_strings - = "" - = "("+++separated "," expl_imp_constructor_strings+++")" - -// only for portToNewSyntax -is_expl_imported_constructor def_mod_index ds_ident [] - = False -is_expl_imported_constructor def_mod_index ds_ident [Declaration {decl_ident, decl_kind=STE_Imported STE_Constructor def_mod_index2}:_] - | decl_ident==ds_ident && def_mod_index==def_mod_index2 - = True - // GOTO next alternative -is_expl_imported_constructor def_mod_index ds_ident [h:t] - = is_expl_imported_constructor def_mod_index ds_ident t - -fwriteNewSyntax importStrings file - | isEmpty importStrings - = fwrites "import @#$@@!!" file - # with_commas = (map (\s->s+++", ") (butLast importStrings))++[last importStrings+++";"] - lines = split_in_lines 12 with_commas [] [] - lines = [hd lines:[["\t":line]\\ line<-tl lines]] - line_strings = [ foldl (+++) " " (line++["\n"]) \\ line<-lines ] - = fwrites (foldl (+++) "import" line_strings) file - where - max_line_length = 80 - split_in_lines i [] inner_accu outer_accu - # accu = if (isEmpty inner_accu) outer_accu [reverse inner_accu:outer_accu] - = reverse accu - split_in_lines i [h:t] inner_accu outer_accu - # s = size h - | s+i>max_line_length - | isEmpty inner_accu - = split_in_lines (s+i) t [h] outer_accu - = split_in_lines (s+cTabWidth) t [h] [inner_accu:outer_accu] - = split_in_lines (s+i) t [h:inner_accu] outer_accu -// only for portToNewSyntax - -butLast [] = [] -butLast [x] = [] -butLast [h:t] = [h: butLast t] - -// MW: fake.. -openFile file_name cs - # world = bigBang - (ok, newFile, world) = fopen file_name FWriteText world - cs = forget world cs - cs = case ok of - True -> cs - _ # cs_error = checkError "" ("can't open file \""+++file_name+++" in current directory.") cs.cs_error - -> { cs & cs_error=cs_error } - = (newFile, cs) - -closeFile file cs - # world = bigBang - (ok, world) = fclose file world - = forget world cs - -bigBang :: .World -bigBang = cast 1 -// creates a world from scratch - -forget :: !.x !.y -> .y -forget x y = y - -cast :: !.a -> .b -cast a - = code - { - pop_a 0 - } -// ..fake |