diff options
Diffstat (limited to 'portToNewSyntax/rmPreprop.icl')
| -rw-r--r-- | portToNewSyntax/rmPreprop.icl | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/portToNewSyntax/rmPreprop.icl b/portToNewSyntax/rmPreprop.icl deleted file mode 100644 index 1be1eef..0000000 --- a/portToNewSyntax/rmPreprop.icl +++ /dev/null @@ -1,190 +0,0 @@ -module rmPreprop - -import StdEnv, Directory, StdLib, StdDebug - -one_three =: "1.3" -two_zero =: "2.0" - -intro_text current_dir_string = - [ "This program can be used to remove the preprocessor statements\n" - , "from your Clean sources. Consult the documentation about\n" - , "differences between Clean 1.3 and Clean 2.0 to get more information\n" - , "about the Clean preprocessor.\n" - , "\n" - , "This program will perform it's task on all .icl and .dcl files\n" - , "in the current folder only. To process several folders you can move\n" - , "this executable.\n" - , "\n" - , "This program will not alter the files in the current folder, but will\n" - , "rather create two subfolders with the resulting 1.3 and 2.0 sources.\n" - , "The subfolders are called \"", one_three, "\" and \"", two_zero, "\".\n" - , "\n" - , "Current directory:", current_dir_string, "\n" - , "\n" - , "Should I start? (y/n):" - ] - - -appStdio f w - #! (io, w) - = stdio w - (x, io, w) - = f io w - (_, w) - = fclose io w - = (x, w) - -appStdio1 f w - #! (_, w) - = appStdio (\io w -> let io2 = f io in (0, io2, w)) w - = w - -intro io w - #! (current_dir_path, w) - = getCurrentDirectory w - (current_dir_string, w) - = pathToPD_String current_dir_path w - io - = foldlSt fwrites (intro_text current_dir_string) io - (answer, io) - = freadline io - io - = fwrites "\n" io - = (size answer>0 && (answer.[0]=='y' || answer.[0]=='Y'), io, w) - -perform w - #! (filenames, w) - = getFilenames w - | isEmpty filenames - = (False, w) - #! (ok, w) - = makeSubfolders w - | not ok - = (ok, w) - = loop filenames w - where - getFilenames w - #! ((err, dir_entries), w) - = getDirectoryContents (RelativePath []) w - | err<>NoDirError - #! w - = appStdio1 (fwrites "Error:can't retrieve contents of current directory\n\n") w - = ([], w) - = ([fileName \\ {fileName}<-dir_entries | endsWith fileName ".dcl" || endsWith fileName ".icl"], w) - endsWith s suffix - #! size_s = size s - = s % (size_s-size suffix, size_s-1)==suffix - makeSubfolders w - #! (ok1, w) - = makeSubfolder one_three w - (ok2, w) - = makeSubfolder two_zero w - = (ok1 && ok2, w) - makeSubfolder name w - #! (err, w) - = createDirectory (RelativePath [PathDown name]) w - = (err==NoDirError || err==AlreadyExists, w) - loop [] w - = (True, w) - loop [filename:filenames] w - #! (ok, w) - = performOnFile filename w - | not ok - = (ok, w) - = loop filenames w - performOnFile filename w - #! (ok, input, w) - = fopen filename FReadData w - | not ok - = (ok, w) - #! (ok1, out13, w) - = openOutputfile one_three filename w - (ok2, out20, w) - = openOutputfile two_zero filename w - | not ok1 || not ok2 - = (False, w) - #! (input, out13, out20) - = fileLoop input out13 out20 - (_, w) - = fclose input w - (_, w) - = fclose out13 w - (_, w) - = fclose out20 w - = (True, w) - where - fileLoop :: !*File !*File !*File -> (!*File, !*File, !*File) - fileLoop input out13 out20 - #! (isEof, input) - = fend input - | isEof - = (input, out13, out20) - #! (line, input) - = freadline input - | beginsWith "//1.3" line - = oneThree input out13 out20 - | beginsWith "/*2.0" line - = twoZero input out13 out20 - #! out13 - = fwrites line out13 - out20 - = fwrites line out20 - = fileLoop input out13 out20 - oneThree :: !*File !*File !*File -> (!*File, !*File, !*File) - oneThree input out13 out20 - #! (isEof, input) - = fend input - | isEof - = (input, out13, out20) - #! (line, input) - = freadline input - | beginsWith "//3.1" line - = fileLoop input out13 out20 - #! out13 - = fwrites line out13 - = oneThree input out13 out20 - twoZero :: !*File !*File !*File -> (!*File, !*File, !*File) - twoZero input out13 out20 - #! (isEof, input) - = fend input - | isEof - = (input, out13, out20) - #! (line, input) - = freadline input - | beginsWith "0.2*/" line - = fileLoop input out13 out20 - #! out20 - = fwrites line out20 - = twoZero input out13 out20 - beginsWith praefix line - = line % (0, size praefix-1) == praefix - openOutputfile subdir_name filename w - #! (pd_path, w) - = pathToPD_String (RelativePath [PathDown subdir_name, PathDown filename]) w - (ok, file, w) - = fopen pd_path FWriteData w - | not ok - #! w - = appStdio1 (fwrites ("Error:can't open "+++pd_path+++".\n\n")) w - = (ok, file, w) - = (ok, file, w) - -byebye ok io - #! io - = fwrites (if ok "Work done.\n\n" "Couldn't finish work.\n\n") io - io - = fwrites "Push enter to quit" io - (_, io) - = freadline io - = io - -Start w - #! (do_it, w) - = appStdio intro w - | not do_it - = w - #! (ok, w) - = perform w - w - = appStdio1 (byebye ok) w - = w
\ No newline at end of file |
