
     This document lists the  items  available  from  the  PCCTS  mail
server.   The typical user with ftp access will ftp "pccts.bag" (which
contains all source code) README, UPDATE106.txt and install.   If  the
user  has troff and friends (-ms package, pic, tbl) "manual.ms" can be
ftp'd.  Otherwise, a PostScript version, "manual.ps", or a  text  ver-
sion without figures, "manual.txt", is available.  The individual bags
like "antlr.bag" are offered so that updates to those packages can  be
obtained  without  grabbing the whole PCCTS bag.  To install, read the
README text file.  The ftp address is given at the end of  this  docu-
ment.

     Users without ftp access must ask the mailbot to email  the  same
files  that you would ftp if you had the capability; i.e. "pccts.bag",
README, install and "manual.ms", "manual.ps"  or  "manual.txt".   This
can be done from UNIX via:

"mail -s 'email pccts.bag' pccts@ecn.purdue.edu"

which requests that the entire PCCTS source be mailed to you in  small
chunks.   The README, install and manual files are obtained in a simi-
lar fashion.

The small mail chunks are put back together with  "one.c"  which  must
also  be  obtained  from  the  mailbot  (and does not itself arrive in
chunks).  The files (which where broken up) are reconstructed with the
executable  obtained  via  "cc -o one one.c".  See the README file for
more details.

     The following items are currently available from pccts:

README
     Describes installation and  some  of  differences  between  beta-
     release PCCTS and PCCTS 1.0.

UPDATE106.ms
     This TROFF document describes the update of PCCTS  from  1.00  to
     1.06.   As  the  manual  has  NOT  changed,  this serves as a new
     feature list.  BUGS100 describes the bugs found in 1.00 that were
     fixed  for  1.06.   PostScript and text versions of this file are
     also available.

install
     An 'sh' script that can be used by UNIX users to  install  PCCTS.
     This script builds a directory hierarchy, unbags all source files
     and creates the antlr (ANother Tool for Language Recognition) and
     dlg (DFA-based lexical analyzer generator) executables.

one.c
     C program that combines chunks of files  back  into  an  original
     file.  Large files are broken down into bite-size chunks suitable
     to the mailer.  This program can be used to reverse the splitting
     process.  Any files that arrive with a subject line indicating it



                                                                Page 1

                                                                 PCCTS


     is a chunk, must be combined using one.  It may be compiled  with
     "cc -o one one.c".  See the README file for details.

BUGS  Gives a current list of bugs that we are aware of in  the  PCCTS
     in  1.06.   Sometimes  a  bug fix is given along with the problem
     description.  This file is updated occasionally.  If you  have  a
     problem check this file before sending in a bug report.

BUGS100
     A list a bugs found in PCCTS 1.00 that have been fixed for 1.06.

unbag.c
     PCCTS source files arrive in  "bags"  which  are  collections  of
     other  files  (which  could  be  other  bags), hence they need to
     "unbagged" to recover the contents.  This can be done  either  by
     executing the bag as a shell command (just like unpacking a trad-
     itional shell archive; e.g. 'sh pccts.bag') or by using the  pro-
     gram  unbag.   The  unbag  program does not destroy the input bag
     file.  Normally, the user does not need to explicitly unbag  any-
     thing.   The install script handles everthing.  unbag may be com-
     piled with "cc -o unbag unbag.c".

manual.ms
     TROFF source of the PCCTS reference manual.   This  file  may  be
     printed using troff -ms & friends (pic, tbl).

manual.ps
     A PostScript version of manual.ms.

manual.txt
     A raw text version of manual.ms.

begtut.ms,
     A beginners tutorial of PCCTS.  It is suggested that this file be
     placed  in  a  subdirectory  of  your PCCTS directory at the same
     level of antlr, dlg etc..

advtug.bag
     A tutorial for advanced language developers unfamiliar with PCCTS
     or  for  those who want to learn more.  A "compiler" is developed
     for a simple stack machine.  This is a much better example of how
     to  use  the abstract-syntax-tree (AST) mechanism than the refer-
     ence  manual  (whose  description  is  terse  and  is  not   well
     presented).   This  bag  contains  the TROFF, PostScript and text
     version of the documentation; all examples are already  extracted
     from  the  document  and are ready to play with.  It is suggested
     that this file be placed in a subdirectory of your  PCCTS  direc-
     tory at the same level of antlr, dlg etc..

pccts.1, pccts1.txt
     PCCTS man page (view with "troff -man pccts.1") and text  version
     of manual page.

antlr.1, antlr1.txt



                                                                Page 2

                                                                 PCCTS


     ANTLR man page (view with "troff -man antlr.1") and text  version
     of manual page.

dlg.1, dlg1.txt
     DLG man page (view with "troff -man dlg.1") and text  version  of
     manual page.

pccts.bag
     Complete C source  code  for  latest  PCCTS  release.   Contains:
     antlr.bag,  dlg.bag,  h.bag,  genmk.c,  set.bag,  sym.bag, C.bag,
     pascal.bag, rexpr.bag.  If you get this file, you do NOT need  to
     get the individual bag files that comprise this one.

antlr.bag
     C source code for antlr -- ANother Tool for Language Recognition.

dlg.bag
     C source code for dlg -- DFA-based lexical analyzer generator.

h.bag
     C source of the PCCTS include files.

genmk.c
     A C file that creates PCCTS makefiles from a project name  and  a
     list  of grammars; e.g. genmk t t.g makes a makefile that creates
     an executable called t from a grammar file t.g.

set.bag
     C source code for a dynamically-allocated bit-set manager.   This
     is used by both antlr and dlg and is needed for them to compile.

sym.bag
     C source for a symbol table manager with arbitrary scoping  capa-
     bilities.

C.bag
     The C grammar is really part of a program that can generate func-
     tion and variable prototypes from a C source file.

pascal.bag
     Grammar for ISO PASCAL with symbol table management.

rexpr.bag
     C source for the function

          rexpr(char *expr, char *s)


     which answers whether s is in the language described by the regu-
     lar expression expr.

     All  PCCTS  files  are   available   via   anonymous   ftp   from
marvin.ecn.purdue.edu    (128.46.179.151)    in    the    subdirectory
pub/pccts/1.06  (beginning  December  1,  1992);  the  ftp  login   is



                                                                Page 3

                                                                 PCCTS


"anonymous" and has a password of your email address.

Thank you for your interest,

        The Authors of The Purdue Compiler Construction Tool Set

    Terence J. Parr, parrt@ecn.purdue.edu
    Will E. Cohen,   cohenw@ecn.purdue.edu
    Henry G. Dietz,  hankd@ecn.purdue.edu
















































                                                                Page 4

