
     Z-TO-C is a tool for translating from Zetalisp to Common Lisp
     and from Flavors to CLOS.  It is intended to ease the translation
     process, not to do all of it.  There is still some redesign
     involved in porting a program, like the access to strings and the
     handling of errors.  The translator does understand the #/ macro so
     there is no need to convert character constants.  The single escape
     character, /, is also understood and translated.  Other read
     constants, such as complex numbers, must be converted manually
     before translating the file or form.

     It may be used either on an entire file or on a form from inside
     Zmacs.  An entire file can be translated by issuing the command

     (TRANSL:TRANSLATE-FILE <input-file> <output-file> <trace> <new-base>).
   
     If <trace> is T then a trace of the translation will be printed on
     *standard-output*.  <new-base> can be set to be the print base in
     which all numbers in the code will be printed.  It is advised to
     also set *PRINT-RADIX* to T so all numbers in the translated code
     will be printed with the proper base identifier. 

     All of the files in a system can be translated by the command:
     (TRANSL:TRANSLATE-SYSTEM <system-name> <output-directory>
			      &key :trace :base :case)

     The key chord HYPER-T is added to ZMACS when the Z-TO-C system
     is made.  While in an edit buffer with the cursor at the beginning
     of a form, pressing HYPER-T will cause the form to be translated.
     You are prompted to approve the translation.  If you say yes, the
     translated form will replace the original one.

     The command HYPER-SUPER-T will also attempt to translate back-quote
     forms that construct code.  This is not normally done except in the
     body of DEFMACRO forms.

     The translator does not preserve the case or format of the source.
     This is disturbing to some people.  You can, however, set
     *PRINT-CASE* to :DOWNCASE, :UPCASE, or :CAPITALIZE and all of the
     code will be in the selected case.  If you want your code to
     preserve the look it presently has, use the translator to identify
     what needs to be modified and then do the modifications manually.

     Warning: any use of #+ or #- other than at top level will be lost
     since they will be processed as the file is read.

     When converting from Flavors to CLOS, the translator maps flavor
     messages names into generic function names.  For example, message
     :FOO would become generic function FOO in the current package.  If
     this simple mapping won't work because the resulting symbol already
     has another meaning, then you are asked to type in the name of the
     generic function.  The name you supply will be remembered and used
     for all subsequent appearances of the corresponding message keyword.
     If you want to reset this cache and start over, call function
     TRANSL:INITIALIZE-OPERATION-TABLE.  Some system-defined operations
     are recognized and handled specially -- for example, :PRINT-SELF
     translates to PRINT-OBJECT, while :SET-CURRENT-FONT is left
     untranslated because there is no Common Lisp equivalent.  Because the
     translator needs to know what the instance variables of the flavors
     are when translating methods and because CLOS has stricter
     requirements for consistency of method argument lists, more accurate
     results will be obtained if the old program is loaded before
     translating the source.  The translator does not yet handle functions
     that use (DECLARE (:SELF-FLAVOR ...)), and some DEFFLAVOR options
     that don't have a CLOS equivalent cause an error to be reported.
     Potential problem areas that will need manual modification include:
     use of SELF or FUNCALL-WITH-MAPPING-TABLE outside a method, methods
     with argument lists that CLOS does not consider congruent, use of
     operations :WHICH-OPERATIONS, :OPERATION-HANDLED-P, and
     :SEND-IF-HANDLES, which don't have a direct correspondence in CLOS
     and require some redesign of the program (typically by defining a
     default method).