.TH PCCTS 1 "April 1994" "PCCTS" "PCCTS Manual Pages" .SH NAME PCCTS \- The Purdue Compiler Construction Tool Set .SH DESCRIPTION .PP PCCTS is a set of public domain software tools designed to facilitate the implementation of compilers and other translation systems. These tools currently include \fIantlr\fP, \fIdlg\fP and support code. In many ways, PCCTS is similar to a highly integrated version of YACC [Joh78] and LEX [Les75]; where \fIantlr\fP (ANother Tool for Language Recognition) corresponds to YACC and \fIdlg\fP (DFA-based Lexical analyzer Generator) functions like LEX. However, PCCTS has many additional features which make it easier to use for a wider range of translation problems. .PP PCCTS grammars contain specifications for lexical and syntactic 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. .PP PCCTS grammars may contain predicates which allow parsing to be a function of semantics as well as syntax\ \(em context-sensitive grammars. Backtracking can also be specified 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 (\fB$\fP-variables) to AST nodes can be specified. Alternatively, each tree node can be defined explicitly via an AST node constructor. .SH INSTALLATION .PP PCCTS includes a number of different programs and examples in the software release package\(emmost of which like to live in their own directories. The install script will build a standard hierarchy. The PCCTS executables (\fIantlr\fP, \fIdlg\fP) may be placed anywhere the user wishes but the install script places them in the bin directory created during installation. .PP To begin installation, place the pccts.tar file into the directory where you want to place a pccts subdirectory. 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. .PP The examples associated with PCCTS have makefile variables called \fBANTLR\fP, \fBDLG\fP etc... which must be set according to your personal directory structure before \fImake\fP'ing. Some variables point to the PCCTS executables if the \fBPATH\fP environment variable does not include your \fBbin\fP directory. Also, there are variables that point to PCCTS include directories and must be changed if you deviate from the standard PCCTS installation hierarchy. \fIantlr\fP and \fIdlg\fP can be built without executable versions of themselves (\fIantlr\fP and \fIdlg\fP are written in themselves). .SH "GETTING STARTED" .PP A C program called \fBgenmk.c\fP is available in the \fBsupport/genmk\fP directory of the PCCTS release. .SH "SEE ALSO" .LP dlg(1), antlr(1)