Provided by: pretzel_2.0n-2-0.3_amd64 bug

NAME

       pretzel-it - use Pretzel to build a prettyprinter

SYNOPSIS

       pretzel-it [-iqvdnh] language ppname

DESCRIPTION

       Pretzel-it  is  a  shell  script  that  uses  pretzel(1)  to  build a simple prettyprinter
       executable. It minimizes building a Pretzel prettyprinter to just one shell  command.  See
       pretzel(1) for a general overview and a description of the input files.

       You  have to provide the same two input files to pretzel-it as to pretzel. These two files
       are called the formatted token file (suffix .ft) and the formatted  grammar  file  (suffix
       .fg).   Both  files  need  to  have the same prefix language.  From this input, pretzel-it
       generates an executable prettyprinter called ppname.

   Example
       Say, you have written  two  files  foo.ft  and  foo.fg  that  contain  the  prettyprinting
       information   for   your  favourite  programming  language  foo.   To  get  an  executable
       prettyprinter foopp for it, simply type:

              pretzel-it foo foopp

OPTIONS

       Pretzel-it has the following options:

              -i     Don't remove intermediate products of pretzeling.

              -q     Run quietly.

              -v     Verbose mode, print shell commands before invoking (for debugging).

              -d     Turn prettyprinter debugging features on by default; also produce a detailed
                     diagnosis  file  (suffix  .output)  that contains a detailed analysis of the
                     grammar and possible problems with it (to ease debugging the  prettyprinting
                     grammar).

              -h     Print full usage message.

              -n     Noweb mode. See section Interfacing with noweb(1) below.

THE GENERATED PRETTYPRINTER

       The  generated executable will be a program that reads source code from the standard input
       and will write prettyprinted code to the standard output. The prettyprinted  code  can  be
       typeset using latex together with the pretzel-latex document style.

   Example
       Say, you have built foopp already and have a scrap of source code in a file bar.foo.  Type

              foopp <bar.foo >bar.tex

       and  the  prettyprinter will prettyprint the code and write LaTeX code to bar.tex.  To use
       this code in your documents, simple include the pretzel-latex document style  and  include
       the  file  inside the new ppcode LaTeX environment. Here's a minimal LaTeX file to look at
       the prettyprinted code:

              \documenstyle[pretzel-latex]{article}
              \begin{document}
              \begin{ppcode}
                \input{foo.tex}
              \end{ppcode}
              \end{document}

INTERFACING WITH NOWEB

       Using the -n option will produce a  prettyprinting  filter  ppname  compatible  to  Norman
       Ramsey's  noweb(1)  literate programming system. The filter can be inserted into the noweb
       pipeline using noweave's -filter option.

       For example, you can build a noweb prettyprinting filter for Pascal by issuing

              pretzel-it -n pascal prettypascal

       inside the languages/pascal directory, you'll get a prettyprinting filter  prettypascal  .
       This filter then can be used within noweave(1) by saying:

              noweave -filter prettypascal foo.nw > foo.tex

       This  will  prettyprint  all code chunks using the Pascal prettyprinter.  You will need to
       include the pretzel-noweb.sty LaTeX document style after including  the  noweb.sty  (  see
       nowebstyle(1) ) to get the output typeset correctly by LaTeX.

       You  can  get  debugging  output from the prettyprinting filter by setting the environment
       variable PRETZEL_NOWEB_DEBUG to a non-null value, e.g. in the bash(1) shell by saying:

              export PRETZEL_NOWEB_DEBUG=on

       Debug output stops only when the value is explicitly unset (in bash(1) this is  the  unset
       builtin command.

       The  noweb  option  at  present  works  only  for  LaTeX  as  target  typesetter.   If the
       prettyprinter  experiences  problems  when  prettyprinting  a  certain  code   chunk,   it
       automatically switches to standard verbatim output of noweb. Through the inclusion of code
       within rules of the formatted grammar file it is possible to automate indexing.  For  more
       information   see  chapters  3  and  4  of  the  Pretzelbook,  contained  in  the  Pretzel
       distribution.

CAVEATS

       The pretzel-it shell script can only be run if the  environment  variables  PRETZEL_LIBDIR
       and  PRETZEL_INCLUDE  are set to the Pretzel library directory (/usr/lib/pretzel on Debian
       systems) and the Pretzel  include  directory  (/usr/include/pretzel  on  Debian  systems).
       During  execution, pretzel-it might issue warnings that are due to the programs it invokes
       (pretzel-it invokes pretzel(1), flex(1), bison(1) and the GNU C++ compiler).

       The -n (noweb) option works only for LaTeX as target typesetter and  is  still  very  much
       experimental.

FILES

       /usr/lib/pretzel/libpretzel.a pretzel runtime library.
       /usr/include/pretzel          directory for runtime library include files.
       /usr/include/pretzel/pscan.h
       /usr/include/pretzel/pparse.h template headers for the generated functions.
       /usr/lib/texmf/tex/latex/pretzel/pretzel-latex.sty
                                     LaTeX style to typeset Pretzel output.
       /usr/lib/pretzel/plainpp.o    simple  main  program  linked  to  the  prettyprinter object
                                     generated by Pretzel.
       /usr/lib/pretzel/plaindpp.o   simple main  program  linked  to  the  prettyprinter  object
                                     generated     by     Pretzel     with     debug    features.
                                     /usr/lib/pretzel/nowebpretzelpp.o    main    program     the
                                     interfaces the Preztel prettyprinter with noweb.

SEE ALSO

       pretzel(1), noweb(1)
       The Pretzelbook by Felix Gaertner, included in the Pretzel distribution.
       The     Pretzel     homepage     on     the     WWW    at    http://www.iti.informatik.tu-
       darmstadt.de/~gaertner/pretzel

AUTHOR

       Felix Gaertner, email: fcg@acm.org

                                          June 11, 1998                             pretzel-it(1)