1 .TH PCCTS 1 "April 1994" "PCCTS" "PCCTS Manual Pages"
3 PCCTS \- The Purdue Compiler Construction Tool Set
6 PCCTS is a set of public domain software tools designed to facilitate
7 the implementation of compilers and other translation systems. These
8 tools currently include \fIantlr\fP, \fIdlg\fP and support code. In
9 many ways, PCCTS is similar to a highly integrated version of YACC
10 [Joh78] and LEX [Les75]; where \fIantlr\fP (ANother Tool for Language
11 Recognition) corresponds to YACC and \fIdlg\fP (DFA-based Lexical
12 analyzer Generator) functions like LEX. However, PCCTS has many
13 additional features which make it easier to use for a wider range of
16 PCCTS grammars contain specifications for lexical and syntactic
17 analysis, intermediate-form construction and error reporting. Rules
18 may employ Extended Backus Naur Form (EBNF) grammar constructs and may
19 define parameters, return values and local variables. Languages
20 described in PCCTS are recognized via Strong LL(k) parsers constructed
21 in pure, human-readable, C code. As a result, standard debugging
22 tools can be used to trace and debug PCCTS parsers. Breakpoints can
23 be set so that parser execution stops before or after grammar
24 fragments of interest have been recognized.
26 PCCTS grammars may contain predicates which allow parsing to be a
27 function of semantics as well as syntax\ \(em context-sensitive
28 grammars. Backtracking can also be specified to recognized non-LL(k)
29 and non-LALR(k) constructs. In addition, PCCTS supports
30 intermediate-form (such as expression-trees) construction via a
31 flexible Abstract-Syntax Tree (AST) mechanism which allows trees to be
32 built explicitly or automatically. The user explicitly creates trees
33 via a LISP-like tree constructor or directs the automatic tree
34 construction facility via simple grammar directives. AST nodes are
35 user-defined and are generally a function of attributes. A default
36 transformation from attributes (\fB$\fP-variables) to AST nodes can be
37 specified. Alternatively, each tree node can be defined explicitly
38 via an AST node constructor.
41 PCCTS includes a number of different programs and examples in the
42 software release package\(emmost of which like to live in their own
43 directories. The install script will build a standard hierarchy. The
44 PCCTS executables (\fIantlr\fP, \fIdlg\fP) may be placed anywhere the
45 user wishes but the install script places them in the bin directory
46 created during installation.
48 To begin installation, place the pccts.tar file into the directory
49 where you want to place a pccts subdirectory. Untar the file with
53 and cd into it. To install PCCTS, simply type
57 which will build the standard PCCTS directory hierarchy (under the
58 directory where you ran the install script) and build executable
59 versions of antlr and dlg.
61 The examples associated with PCCTS have makefile variables called
62 \fBANTLR\fP, \fBDLG\fP etc... which must be set according to your
63 personal directory structure before \fImake\fP'ing. Some variables
64 point to the PCCTS executables if the \fBPATH\fP environment variable
65 does not include your \fBbin\fP directory. Also, there are variables
66 that point to PCCTS include directories and must be changed if you
67 deviate from the standard PCCTS installation hierarchy. \fIantlr\fP
68 and \fIdlg\fP can be built without executable versions of themselves
69 (\fIantlr\fP and \fIdlg\fP are written in themselves).
72 A C program called \fBgenmk.c\fP is available in the \fBsupport/genmk\fP
73 directory of the PCCTS release.