\ 4tH template for conversion utilities \ Copyright 2002,2004 - J.L. Bezemer \ This file is not intended for standalone use. \ You will have to define the following words: \ Usage ( f --) : abort" Your error message" \ PreProcess ( --) : Actions before the file is read (optional) \ Read-file ( -- f) : How to read the file, e.g. refill \ Process ( --) : What to do after each Read-file \ PostProcess ( --) : Actions after the file has been read (optional) \ Has Usage been defined? If not, abort! [UNDEFINED] Usage [IF] [ABORT] [THEN] \ Has Read-File been defined? If not, abort! [UNDEFINED] Read-File [IF] [ABORT] [THEN] \ Has Process been defined? If not, abort! [UNDEFINED] Process [IF] [ABORT] [THEN] \ Special imode defined? If not, assume binary mode. [UNDEFINED] imode [IF] input constant imode [THEN] \ Special omode defined? If not, assume binary mode. [UNDEFINED] omode [IF] output constant omode [THEN] [NEEDS lib/argopen.4th] : CloseFiles close close ; ( h h --) ( -- h h) : OpenFiles \ open input and output files argn 3 < Usage \ issue message if error imode 1 arg-open \ open the input file omode 2 arg-open \ open the output file ; : ProcessFile \ process the input file line by line [DEFINED] PreProcess [IF] PreProcess \ do any preprocessing [THEN] begin Read-file \ read the file while Process \ process the line or buffer repeat [DEFINED] PostProcess [IF] PostProcess \ do any postprocessing [THEN] ; : Convert OpenFiles ProcessFile CloseFiles ; Convert