PCCTS(1) PCCTS Manual Pages PCCTS(1)
NNAAMMEE
PCCTS - The Purdue Compiler Construction Tool Set
DDEESSCCRRIIPPTTIIOONN
PCCTS is a set of public domain software tools designed to
facilitate the implementation of compilers and other
translation systems. These tools currently include _a_n_t_l_r,
_d_l_g and support code. In many ways, PCCTS is similar to a
highly integrated version of YACC [Joh78] and LEX [Les75];
where _a_n_t_l_r (ANother Tool for Language Recognition) corre-
sponds to YACC and _d_l_g (DFA-based Lexical analyzer Genera-
tor) functions like LEX. However, PCCTS has many addi-
tional features which make it easier to use for a wider
range of translation problems.
PCCTS grammars contain specifications for lexical and syn-
tactic analysis, intermediate-form construction and error
reporting. Rules may employ Extended Backus Naur Form
(EBNF) grammar constructs and may define parameters,
return values and local variables. Languages described in
PCCTS are recognized via Strong LL(k) parsers constructed
in pure, human-readable, C code. As a result, standard
debugging tools can be used to trace and debug PCCTS
parsers. Breakpoints can be set so that parser execution
stops before or after grammar fragments of interest have
been recognized.
PCCTS grammars may contain predicates which allow parsing
to be a function of semantics as well as syntax -- con-
text-sensitive grammars. Backtracking can also be speci-
fied to recognized non-LL(k) and non-LALR(k) constructs.
In addition, PCCTS supports intermediate-form (such as
expression-trees) construction via a flexible Abstract-
Syntax Tree (AST) mechanism which allows trees to be built
explicitly or automatically. The user explicitly creates
trees via a LISP-like tree constructor or directs the
automatic tree construction facility via simple grammar
directives. AST nodes are user-defined and are generally
a function of attributes. A default transformation from
attributes ($$-variables) to AST nodes can be specified.
Alternatively, each tree node can be defined explicitly
via an AST node constructor.
IINNSSTTAALLLLAATTIIOONN
PCCTS includes a number of different programs and examples
in the software release package--most of which like to
live in their own directories. The install script will
build a standard hierarchy. The PCCTS executables (_a_n_t_l_r,
_d_l_g) may be placed anywhere the user wishes but the
install script places them in the bin directory created
during installation.
To begin installation, place the pccts.tar file into the
directory where you want to place a pccts subdirectory.
PCCTS April 1994 1
PCCTS(1) PCCTS Manual Pages PCCTS(1)
Untar the file with
tar xvf pccts.tar
and cd into it. To install PCCTS, simply type
make
which will build the standard PCCTS directory hierarchy
(under the directory where you ran the install script) and
build executable versions of antlr and dlg.
The examples associated with PCCTS have makefile variables
called AANNTTLLRR, DDLLGG etc... which must be set according to
your personal directory structure before _m_a_k_e'ing. Some
variables point to the PCCTS executables if the PPAATTHH envi-
ronment variable does not include your bbiinn directory.
Also, there are variables that point to PCCTS include
directories and must be changed if you deviate from the
standard PCCTS installation hierarchy. _a_n_t_l_r and _d_l_g can
be built without executable versions of themselves (_a_n_t_l_r
and _d_l_g are written in themselves).
GGEETTTTIINNGG SSTTAARRTTEEDD
A C program called ggeennmmkk..cc is available in the ssuupp--
ppoorrtt//ggeennmmkk directory of the PCCTS release.
SSEEEE AALLSSOO
dlg(1), antlr(1)
PCCTS April 1994 2