Provided by: smlsharp_4.0.0+git20211227.5af5945b-2_amd64 bug

NAME

       smlformat - the pretty printer generator for SML#

SYNOPSIS

       smlformat [--stdout|--output=file] [--with-line-directive] filename ...

DESCRIPTION

       SMLFormat  generates pretty printing functions for ML types and datatypes.  The input file
       is an SML# program, each type and datatype of which is annotated by  formatting  comments.
       The  smlformat  command interprets the definition of types and its formatting comments and
       inserts formatting functions into the input program.  Generated programs can  be  compiled
       by the SML# compiler.

       When  multiple  input  files  are  given,  each input file is separately read and yields a
       separate program.  By default, the output file name is obtained by appending  .sml  suffix
       to the input file name.

   OPTIONS
       --stdout
              Output the result to the standard output.

       --output=filename
              Output the result to the specified file.

       --with-line-directive
              Insert comments about the line number of the input file into the output.

       --separate=structureName
              Output formatters in a separate structure.

EXAMPLES

       The following is a minimal example of an input file ex.ppg:

              (*% *)
              datatype intlist = NIL | CONS of int * intlist
              fun pretty_intlist x =
                  SMLFormat.prettyPrint nil (format_intlist x)

       where (*% *) is the formatting comment of the intlist type.  By invoking smlformat,

              smlformat ex.ppg

       it interprets the formatting comment and generates format_intlist function of type intlist
       -> SMLFormat.format.  In the output file ex.ppg.sml, the definition of  format_intlist  is
       inserted just after the definition of the intlist type.

       To  compile  the  generated  program,  you  need  to write an interface file ex.ppg.smi by
       yourself.  In  the  interface  file,  the  SMLFormat  library  smlformat-lib.smi  must  be
       required.  The content of ex.ppg.smi must be as follows:

              _require "basis.smi"
              _require "smlformat-lib.smi"
              datatype intlist = NIL | CONS of int * intlist
              val format_intlist : intlist -> SMLFormat.format
              val pretty_intlist : intlist -> string

SEE ALSO

       SML# Document, available at https://www.pllab.riec.tohoku.ac.jp/smlsharp/docs/

                                                                                     SMLFORMAT(1)