]> pd.if.org Git - pccts/commitdiff
auto commit for import
authorTerence Parr <>
Fri, 6 Oct 1995 00:40:02 +0000 (19:40 -0500)
committerNathan Wagner <nw@hydaspes.if.org>
Sun, 26 Feb 2017 02:16:52 +0000 (20:16 -0600)
antlr/antlr.1 [new file with mode: 0755]
antlr/antlr1.txt [new file with mode: 0755]
antlr/makefile [new file with mode: 0755]
antlr/makefile.VMS [new file with mode: 0755]
antlr/stdpccts.h [new file with mode: 0755]
antlr/tokens.h [new file with mode: 0755]

diff --git a/antlr/antlr.1 b/antlr/antlr.1
new file mode 100755 (executable)
index 0000000..6ace1b2
--- /dev/null
@@ -0,0 +1,209 @@
+.TH ANTLR 1 "September 1995" "ANTLR" "PCCTS Manual Pages"
+.SH NAME
+antlr \- ANother Tool for Language Recognition
+.SH SYNTAX
+.LP
+\fBantlr\fR [\fIoptions\fR] \fIgrammar_files\fR
+.SH DESCRIPTION
+.PP
+\fIAntlr\fP converts an extended form of context-free grammar into a
+set of C functions which directly implement an efficient form of
+deterministic recursive-descent LL(k) parser.  Context-free grammars
+may be augmented with predicates to allow semantics to influence
+parsing; this allows a form of context-sensitive parsing.  Selective
+backtracking is also available to handle non-LL(k) and even
+non-LALR(k) constructs.  \fIAntlr\fP also produces a definition of a
+lexer which can be automatically converted into C code for a DFA-based
+lexer by \fIdlg\fR.  Hence, \fIantlr\fR serves a function much like
+that of \fIyacc\fR, however, it is notably more flexible and is more
+integrated with a lexer generator (\fIantlr\fR directly generates
+\fIdlg\fR code, whereas \fIyacc\fR and \fIlex\fR are given independent
+descriptions).  Unlike \fIyacc\fR which accepts LALR(1) grammars,
+\fIantlr\fR accepts LL(k) grammars in an extended BNF notation \(em
+which eliminates the need for precedence rules.
+.PP
+Like \fIyacc\fR grammars, \fIantlr\fR grammars can use
+automatically-maintained symbol attribute values referenced as dollar
+variables.  Further, because \fIantlr\fR generates top-down parsers,
+arbitrary values may be inherited from parent rules (passed like
+function parameters).  \fIAntlr\fP also has a mechanism for creating
+and manipulating abstract-syntax-trees.
+.PP
+There are various other niceties in \fIantlr\fR, including the ability to
+spread one grammar over multiple files or even multiple grammars in a single
+file, the ability to generate a version of the grammar with actions stripped
+out (for documentation purposes), and lots more.
+.SH OPTIONS
+.IP "\fB-ck \fIn\fR"
+Use up to \fIn\fR symbols of lookahead when using compressed (linear
+approximation) lookahead.  This type of lookahead is very cheap to
+compute and is attempted before full LL(k) lookahead, which is of
+exponential complexity in the worst case.  In general, the compressed
+lookahead can be much deeper (e.g, \f(CW-ck 10\fP) than the full
+lookahead (which usually must be less than 4).
+.IP \fB-CC\fP
+Generate C++ output from both ANTLR and DLG.
+.IP \fB-cr\fP
+Generate a cross-reference for all rules.  For each rule, print a list
+of all other rules that reference it.
+.IP \fB-e1\fP
+Ambiguities/errors shown in low detail (default).
+.IP \fB-e2\fP
+Ambiguities/errors shown in more detail.
+.IP \fB-e3\fP
+Ambiguities/errors shown in excruciating detail.
+.IP "\fB-fe\fP file"
+Rename \fBerr.c\fP to file.
+.IP "\fB-fh\fP file"
+Rename \fBstdpccts.h\fP header (turns on \fB-gh\fP) to file.
+.IP "\fB-fl\fP file"
+Rename lexical output, \fBparser.dlg\fP, to file.
+.IP "\fB-fm\fP file"
+Rename file with lexical mode definitions, \fBmode.h\fP, to file.
+.IP "\fB-fr\fP file"
+Rename file which remaps globally visible symbols, \fBremap.h\fP, to file.
+.IP "\fB-ft\fP file"
+Rename \fBtokens.h\fP to file.
+.IP \fB-ga\fP
+Generate ANSI-compatible code (default case).  This has not been
+rigorously tested to be ANSI XJ11 C compliant, but it is close.  The
+normal output of \fIantlr\fP is currently compilable under both K&R,
+ANSI C, and C++\(emthis option does nothing because \fIantlr\fP
+generates a bunch of #ifdef's to do the right thing depending on the
+language.
+.IP \fB-gc\fP
+Indicates that \fIantlr\fP should generate no C code, i.e., only
+perform analysis on the grammar.
+.IP \fB-gd\fP
+C code is inserted in each of the \fIantlr\fR generated parsing functions to
+provide for user-defined handling of a detailed parse trace.  The inserted
+code consists of calls to the user-supplied macros or functions called
+\fBzzTRACEIN\fR and \fBzzTRACEOUT\fP.  The only argument is a
+\fIchar *\fR pointing to a C-style string which is the grammar rule
+recognized by the current parsing function.  If no definition is given
+for the trace functions, upon rule entry and exit, a message will be
+printed indicating that a particular rule as been entered or exited.
+.IP \fB-ge\fP
+Generate an error class for each non-terminal.
+.IP \fB-gh\fP
+Generate \fBstdpccts.h\fP for non-ANTLR-generated files to include.
+This file contains all defines needed to describe the type of parser
+generated by \fIantlr\fP (e.g. how much lookahead is used and whether
+or not trees are constructed) and contains the \fBheader\fP action
+specified by the user.
+.IP \fB-gk\fP
+Generate parsers that delay lookahead fetches until needed.  Without
+this option, \fIantlr\fP generates parsers which always have \fIk\fP
+tokens of lookahead available.
+.IP \fB-gl\fP
+Generate line info about grammar actions in C parser of the form
+\fB#\ \fIline\fP\ "\fIfile\fP"\fR which makes error messages from
+the C/C++ compiler make more sense as they will \*Qpoint\*U into the
+grammar file not the resulting C file.  Debugging is easier as well,
+because you will step through the grammar not C file.
+.IP \fB-gs\fR
+Do not generate sets for token expression lists; instead generate a
+\fB||\fP-separated sequence of \fBLA(1)==\fItoken_number\fR.  The
+default is to generate sets.
+.IP \fB-gt\fP
+Generate code for Abstract-Syntax Trees.
+.IP \fB-gx\fP
+Do not create the lexical analyzer files (dlg-related).  This option
+should be given when the user wishes to provide a customized lexical
+analyzer.  It may also be used in \fImake\fR scripts to cause only the
+parser to be rebuilt when a change not affecting the lexical structure
+is made to the input grammars.
+.IP "\fB-k \fIn\fR"
+Set k of LL(k) to \fIn\fR; i.e. set tokens of look-ahead (default==1).
+.IP "\fB-o\fP dir
+Directory where output files should go (default=".").  This is very
+nice for keeping the source directory clear of ANTLR and DLG spawn.
+.IP \fB-p\fP
+The complete grammar, collected from all input grammar files and
+stripped of all comments and embedded actions, is listed to
+\fBstdout\fP.  This is intended to aid in viewing the entire grammar
+as a whole and to eliminate the need to keep actions concisely stated
+so that the grammar is easier to read.  Hence, it is preferable to
+embed even complex actions directly in the grammar, rather than to
+call them as subroutines, since the subroutine call overhead will be
+saved.
+.IP \fB-pa\fP
+This option is the same as \fB-p\fP except that the output is
+annotated with the first sets determined from grammar analysis.
+.IP "\fB-prc on\fR
+Turn on the computation and hoisting of predicate context.
+.IP "\fB-prc off\fR
+Turn off the computation and hoisting of predicate context.  This
+option makes 1.10 behave like the 1.06 release with option \fB-pr\fR
+on.  Context computation is off by default.
+.IP "\fB-rl \fIn\fR
+Limit the maximum number of tree nodes used by grammar analysis to
+\fIn\fP.  Occasionally, \fIantlr\fP is unable to analyze a grammar
+submitted by the user.  This rare situation can only occur when the
+grammar is large and the amount of lookahead is greater than one.  A
+nonlinear analysis algorithm is used by PCCTS to handle the general
+case of LL(k) parsing.  The average complexity of analysis, however, is
+near linear due to some fancy footwork in the implementation which
+reduces the number of calls to the full LL(k) algorithm.  An error
+message will be displayed, if this limit is reached, which indicates
+the grammar construct being analyzed when \fIantlr\fP hit a
+non-linearity.  Use this option if \fIantlr\fP seems to go out to
+lunch and your disk start thrashing; try \fIn\fP=10000 to start.  Once
+the offending construct has been identified, try to remove the
+ambiguity that \fIantlr\fP was trying to overcome with large lookahead
+analysis.  The introduction of (...)? backtracking blocks eliminates
+some of these problems\ \(em \fIantlr\fP does not analyze alternatives
+that begin with (...)? (it simply backtracks, if necessary, at run
+time).
+.IP \fB-w1\fR
+Set low warning level.  Do not warn if semantic predicates and/or
+(...)? blocks are assumed to cover ambiguous alternatives.
+.IP \fB-w2\fR
+Ambiguous parsing decisions yield warnings even if semantic predicates
+or (...)? blocks are used.  Warn if predicate context computed and
+semantic predicates incompletely disambiguate alternative productions.
+.IP \fB-\fR
+Read grammar from standard input and generate \fBstdin.c\fP as the
+parser file.
+.SH "SPECIAL CONSIDERATIONS"
+.PP
+\fIAntlr\fP works...  we think.  There is no implicit guarantee of
+anything.  We reserve no \fBlegal\fP rights to the software known as
+the Purdue Compiler Construction Tool Set (PCCTS) \(em PCCTS is in the
+public domain.  An individual or company may do whatever they wish
+with source code distributed with PCCTS or the code generated by
+PCCTS, including the incorporation of PCCTS, or its output, into
+commercial software.  We encourage users to develop software with
+PCCTS.  However, we do ask that credit is given to us for developing
+PCCTS.  By "credit", we mean that if you incorporate our source code
+into one of your programs (commercial product, research project, or
+otherwise) that you acknowledge this fact somewhere in the
+documentation, research report, etc...  If you like PCCTS and have
+developed a nice tool with the output, please mention that you
+developed it using PCCTS.  As long as these guidelines are followed,
+we expect to continue enhancing this system and expect to make other
+tools available as they are completed.
+.SH FILES
+.IP *.c
+output C parser.
+.IP *.cpp
+output C++ parser when C++ mode is used.
+.IP \fBparser.dlg\fP
+output \fIdlg\fR lexical analyzer.
+.IP \fBerr.c\fP
+token string array, error sets and error support routines.  Not used in
+C++ mode.
+.IP \fBremap.h\fP
+file that redefines all globally visible parser symbols.  The use of
+the #parser directive creates this file.  Not used in
+C++ mode.
+.IP \fBstdpccts.h\fP
+list of definitions needed by C files, not generated by PCCTS, that
+reference PCCTS objects.  This is not generated by default.  Not used in
+C++ mode.
+.IP \fBtokens.h\fP
+output \fI#defines\fR for tokens used and function prototypes for
+functions generated for rules.
+.SH "SEE ALSO"
+.LP
+dlg(1), pccts(1)
diff --git a/antlr/antlr1.txt b/antlr/antlr1.txt
new file mode 100755 (executable)
index 0000000..4545275
--- /dev/null
@@ -0,0 +1,264 @@
+
+
+
+ANTLR(1)               PCCTS Manual Pages                ANTLR(1)
+
+
+
+NAME
+     antlr - ANother Tool for Language Recognition
+
+SYNTAX
+     antlr [_\bo_\bp_\bt_\bi_\bo_\bn_\bs] _\bg_\br_\ba_\bm_\bm_\ba_\br__\bf_\bi_\bl_\be_\bs
+
+DESCRIPTION
+     _\bA_\bn_\bt_\bl_\br converts an extended form of context-free grammar into
+     a set of C functions which directly implement an efficient
+     form of deterministic recursive-descent LL(k) parser.
+     Context-free grammars may be augmented with predicates to
+     allow semantics to influence parsing; this allows a form of
+     context-sensitive parsing.  Selective backtracking is also
+     available to handle non-LL(k) and even non-LALR(k) con-
+     structs.  _\bA_\bn_\bt_\bl_\br also produces a definition of a lexer which
+     can be automatically converted into C code for a DFA-based
+     lexer by _\bd_\bl_\bg.  Hence, _\ba_\bn_\bt_\bl_\br serves a function much like that
+     of _\by_\ba_\bc_\bc, however, it is notably more flexible and is more
+     integrated with a lexer generator (_\ba_\bn_\bt_\bl_\br directly generates
+     _\bd_\bl_\bg code, whereas _\by_\ba_\bc_\bc and _\bl_\be_\bx are given independent
+     descriptions).  Unlike _\by_\ba_\bc_\bc which accepts LALR(1) grammars,
+     _\ba_\bn_\bt_\bl_\br accepts LL(k) grammars in an extended BNF notation -
+     which eliminates the need for precedence rules.
+
+     Like _\by_\ba_\bc_\bc grammars, _\ba_\bn_\bt_\bl_\br grammars can use automatically-
+     maintained symbol attribute values referenced as dollar
+     variables.  Further, because _\ba_\bn_\bt_\bl_\br generates top-down
+     parsers, arbitrary values may be inherited from parent rules
+     (passed like function parameters).  _\bA_\bn_\bt_\bl_\br also has a mechan-
+     ism for creating and manipulating abstract-syntax-trees.
+
+     There are various other niceties in _\ba_\bn_\bt_\bl_\br, including the
+     ability to spread one grammar over multiple files or even
+     multiple grammars in a single file, the ability to generate
+     a version of the grammar with actions stripped out (for
+     documentation purposes), and lots more.
+
+OPTIONS
+     -ck _\bn
+          Use up to _\bn symbols of lookahead when using compressed
+          (linear approximation) lookahead.  This type of looka-
+          head is very cheap to compute and is attempted before
+          full LL(k) lookahead, which is of exponential complex-
+          ity in the worst case.  In general, the compressed loo-
+          kahead can be much deeper (e.g, -ck 10) _\bt_\bh_\ba_\bn _\bt_\bh_\be _\bf_\bu_\bl_\bl
+          _\bl_\bo_\bo_\bk_\ba_\bh_\be_\ba_\bd (_\bw_\bh_\bi_\bc_\bh _\bu_\bs_\bu_\ba_\bl_\bl_\by _\bm_\bu_\bs_\bt _\bb_\be _\bl_\be_\bs_\bs _\bt_\bh_\ba_\bn _\b4).
+
+     -CC  Generate C++ output from both ANTLR and DLG.
+
+     -cr  Generate a cross-reference for all rules.  For each
+          rule, print a list of all other rules that reference
+          it.
+
+     -e1  Ambiguities/errors shown in low detail (default).
+
+     -e2  Ambiguities/errors shown in more detail.
+
+     -e3  Ambiguities/errors shown in excruciating detail.
+
+     -fe file
+          Rename err.c to file.
+
+     -fh file
+          Rename stdpccts.h header (turns on -gh) to file.
+
+     -fl file
+          Rename lexical output, parser.dlg, to file.
+
+     -fm file
+          Rename file with lexical mode definitions, mode.h, to
+          file.
+
+     -fr file
+          Rename file which remaps globally visible symbols,
+          remap.h, to file.
+
+     -ft file
+          Rename tokens.h to file.
+
+     -ga  Generate ANSI-compatible code (default case).  This has
+          not been rigorously tested to be ANSI XJ11 C compliant,
+          but it is close.  The normal output of _\ba_\bn_\bt_\bl_\br is
+          currently compilable under both K&R, ANSI C, and C++-
+          this option does nothing because _\ba_\bn_\bt_\bl_\br generates a
+          bunch of #ifdef's to do the right thing depending on
+          the language.
+
+     -gc  Indicates that _\ba_\bn_\bt_\bl_\br should generate no C code, i.e.,
+          only perform analysis on the grammar.
+
+     -gd  C code is inserted in each of the _\ba_\bn_\bt_\bl_\br generated pars-
+          ing functions to provide for user-defined handling of a
+          detailed parse trace.  The inserted code consists of
+          calls to the user-supplied macros or functions called
+          zzTRACEIN and zzTRACEOUT.  The only argument is a _\bc_\bh_\ba_\br
+          * pointing to a C-style string which is the grammar
+          rule recognized by the current parsing function.  If no
+          definition is given for the trace functions, upon rule
+          entry and exit, a message will be printed indicating
+          that a particular rule as been entered or exited.
+
+     -ge  Generate an error class for each non-terminal.
+
+     -gh  Generate stdpccts.h for non-ANTLR-generated files to
+          include.  This file contains all defines needed to
+          describe the type of parser generated by _\ba_\bn_\bt_\bl_\br (e.g.
+          how much lookahead is used and whether or not trees are
+          constructed) and contains the header action specified
+          by the user.
+
+     -gk  Generate parsers that delay lookahead fetches until
+          needed.  Without this option, _\ba_\bn_\bt_\bl_\br generates parsers
+          which always have _\bk tokens of lookahead available.
+
+     -gl  Generate line info about grammar actions in C parser of
+          the form # _\bl_\bi_\bn_\be "_\bf_\bi_\bl_\be" which makes error messages from
+          the C/C++ compiler make more sense as they will point
+          into the grammar file not the resulting C file.
+          Debugging is easier as well, because you will step
+          through the grammar not C file.
+
+     -gs  Do not generate sets for token expression lists;
+          instead generate a ||-separated sequence of
+          LA(1)==_\bt_\bo_\bk_\be_\bn__\bn_\bu_\bm_\bb_\be_\br.  The default is to generate sets.
+
+     -gt  Generate code for Abstract-Syntax Trees.
+
+     -gx  Do not create the lexical analyzer files (dlg-related).
+          This option should be given when the user wishes to
+          provide a customized lexical analyzer.  It may also be
+          used in _\bm_\ba_\bk_\be scripts to cause only the parser to be
+          rebuilt when a change not affecting the lexical struc-
+          ture is made to the input grammars.
+
+     -k _\bn Set k of LL(k) to _\bn; i.e. set tokens of look-ahead
+          (default==1).
+
+     -o dir
+          Directory where output files should go (default=".").
+          This is very nice for keeping the source directory
+          clear of ANTLR and DLG spawn.
+
+     -p   The complete grammar, collected from all input grammar
+          files and stripped of all comments and embedded
+          actions, is listed to stdout.  This is intended to aid
+          in viewing the entire grammar as a whole and to elim-
+          inate the need to keep actions concisely stated so that
+          the grammar is easier to read.  Hence, it is preferable
+          to embed even complex actions directly in the grammar,
+          rather than to call them as subroutines, since the sub-
+          routine call overhead will be saved.
+
+     -pa  This option is the same as -p except that the output is
+          annotated with the first sets determined from grammar
+          analysis.
+
+     -prc on
+          Turn on the computation and hoisting of predicate con-
+          text.
+
+     -prc off
+          Turn off the computation and hoisting of predicate con-
+          text.  This option makes 1.10 behave like the 1.06
+          release with option -pr on.  Context computation is off
+          by default.
+
+     -rl _\bn
+          Limit the maximum number of tree nodes used by grammar
+          analysis to _\bn.  Occasionally, _\ba_\bn_\bt_\bl_\br is unable to
+          analyze a grammar submitted by the user.  This rare
+          situation can only occur when the grammar is large and
+          the amount of lookahead is greater than one.  A non-
+          linear analysis algorithm is used by PCCTS to handle
+          the general case of LL(k) parsing.  The average com-
+          plexity of analysis, however, is near linear due to
+          some fancy footwork in the implementation which reduces
+          the number of calls to the full LL(k) algorithm.  An
+          error message will be displayed, if this limit is
+          reached, which indicates the grammar construct being
+          analyzed when _\ba_\bn_\bt_\bl_\br hit a non-linearity.  Use this
+          option if _\ba_\bn_\bt_\bl_\br seems to go out to lunch and your disk
+          start thrashing; try _\bn=10000 to start.  Once the
+          offending construct has been identified, try to remove
+          the ambiguity that _\ba_\bn_\bt_\bl_\br was trying to overcome with
+          large lookahead analysis.  The introduction of (...)?
+          backtracking blocks eliminates some of these problems -
+          _\ba_\bn_\bt_\bl_\br does not analyze alternatives that begin with
+          (...)? (it simply backtracks, if necessary, at run
+          time).
+
+     -w1  Set low warning level.  Do not warn if semantic
+          predicates and/or (...)? blocks are assumed to cover
+          ambiguous alternatives.
+
+     -w2  Ambiguous parsing decisions yield warnings even if
+          semantic predicates or (...)? blocks are used.  Warn if
+          predicate context computed and semantic predicates
+          incompletely disambiguate alternative productions.
+
+     -    Read grammar from standard input and generate stdin.c
+          as the parser file.
+
+SPECIAL CONSIDERATIONS
+     _\bA_\bn_\bt_\bl_\br works...  we think.  There is no implicit guarantee of
+     anything.  We reserve no legal rights to the software known
+     as the Purdue Compiler Construction Tool Set (PCCTS) - PCCTS
+     is in the public domain.  An individual or company may do
+     whatever they wish with source code distributed with PCCTS
+     or the code generated by PCCTS, including the incorporation
+     of PCCTS, or its output, into commercial software.  We
+     encourage users to develop software with PCCTS.  However, we
+     do ask that credit is given to us for developing PCCTS.  By
+     "credit", we mean that if you incorporate our source code
+     into one of your programs (commercial product, research pro-
+     ject, or otherwise) that you acknowledge this fact somewhere
+     in the documentation, research report, etc...  If you like
+     PCCTS and have developed a nice tool with the output, please
+     mention that you developed it using PCCTS.  As long as these
+     guidelines are followed, we expect to continue enhancing
+     this system and expect to make other tools available as they
+     are completed.
+
+FILES
+     *.c  output C parser.
+
+     *.cpp
+          output C++ parser when C++ mode is used.
+
+     parser.dlg
+          output _\bd_\bl_\bg lexical analyzer.
+
+     err.c
+          token string array, error sets and error support rou-
+          tines.  Not used in C++ mode.
+
+     remap.h
+          file that redefines all globally visible parser sym-
+          bols.  The use of the #parser directive creates this
+          file.  Not used in C++ mode.
+
+     stdpccts.h
+          list of definitions needed by C files, not generated by
+          PCCTS, that reference PCCTS objects.  This is not gen-
+          erated by default.  Not used in C++ mode.
+
+     tokens.h
+          output #_\bd_\be_\bf_\bi_\bn_\be_\bs for tokens used and function prototypes
+          for functions generated for rules.
+
+
+SEE ALSO
+     dlg(1), pccts(1)
+
+
+
+
+
diff --git a/antlr/makefile b/antlr/makefile
new file mode 100755 (executable)
index 0000000..033bdd5
--- /dev/null
@@ -0,0 +1,218 @@
+#
+# Makefile for ANTLR 1.33
+#
+# SOFTWARE RIGHTS
+#
+# We reserve no LEGAL rights to the Purdue Compiler Construction Tool
+# Set (PCCTS) -- PCCTS is in the public domain.  An individual or
+# company may do whatever they wish with source code distributed with
+# PCCTS or the code generated by PCCTS, including the incorporation of
+# PCCTS, or its output, into commerical software.
+# 
+# We encourage users to develop software with PCCTS.  However, we do ask
+# that credit is given to us for developing PCCTS.  By "credit",
+# we mean that if you incorporate our source code into one of your
+# programs (commercial product, research project, or otherwise) that you
+# acknowledge this fact somewhere in the documentation, research report,
+# etc...  If you like PCCTS and have developed a nice tool with the
+# output, please mention that you developed it using PCCTS.  In
+# addition, we ask that this header remain intact in our source code.
+# As long as these guidelines are kept, we expect to continue enhancing
+# this system and expect to make other tools available as they are
+# completed.
+#
+# ANTLR 1.33
+# Terence Parr
+# Parr Research Corporation
+# with Purdue University
+# and AHPCRC, University of Minnesota
+# 1989-1995
+#
+# Ported to Borland C++, IBM C-Set/2 and Microsoft 6.0 by
+# Ed Harfmann
+# Micro Data Base Systems
+# Lafayette, Indiana
+#
+SET=../support/set
+PCCTS_H=../h
+
+##
+## Uncomment the appropriate section to build
+## (both targets and 'make' variable definitions)
+## Note that UNIX is the default
+##
+
+#
+#   OS/2 & DOS 16 bit using MSC 6.0
+#
+#CC=cl
+#ANTLR=..\bin\antlr
+#DLG=..\bin\dlg
+#CFLAGS= -I. -I$(SET) -I$(PCCTS_H) /AL /Za /W3 -DPC -DUSER_ZZSYN
+#OUT_OBJ = -Fo
+#LIBS=/NOD:LLIBCE LLIBCEP
+#OBJ_EXT = obj
+#
+#antlr.exe: antlr.obj scan.obj err.obj bits.obj build.obj fset2.obj \
+#        fset.obj gen.obj globals.obj hash.obj lex.obj main.obj \
+#        misc.obj set.obj pred.obj
+#       link @<<
+#$** /NOI
+#$@ /STACK:14336
+#
+#$(LIBS: = +^
+#)
+#$(DEF_FILE) $(LFLAGS) ;
+#<<
+#        bind $@ c:\os2\doscalls.lib
+#        copy *.exe ..\bin
+#
+
+#
+#   Borland C++ for DOS
+#
+#CC=bcc
+#ANTLR=..\bin\antlr
+#DLG=..\bin\dlg
+#CFLAGS= -I. -I$(SET) -I$(PCCTS_H) -ml -ff- -w- -DPC -DUSER_ZZSYN
+#OUT_OBJ = -o
+#LIBS= emu mathl cl
+#OBJ_EXT = obj
+#
+#antlr.exe: antlr.obj scan.obj err.obj bits.obj build.obj fset2.obj \
+#        fset.obj gen.obj globals.obj hash.obj lex.obj main.obj \
+#        misc.obj set.obj pred.obj
+#       tlink @&&|
+#C0L $**
+#$@ /Tde /c
+#
+#$(LIBS)
+#$(DEF_FILE) $(LFLAGS) ;
+#|
+#        copy *.exe ..\bin
+#
+
+#
+# C-Set/2 for OS/2
+#
+#CC=icc
+#CFLAGS= -I. -I$(SET) -I$(PCCTS_H) /Sa /W3 -DUSER_ZZSYN -D__STDC__
+#OUT_OBJ = -Fo
+#LIBS=
+#ANTLR=..\bin\antlr
+#DLG=..\bin\dlg
+#OBJ_EXT = obj
+#
+#antlr.exe: antlr.obj scan.obj err.obj bits.obj build.obj fset2.obj \
+#        fset.obj gen.obj globals.obj hash.obj lex.obj main.obj \
+#        misc.obj set.obj pred.obj
+#        link386 @<<
+#$** /NOI
+#$@ /STACK:32768
+#
+#$(LIBS: = +^
+#)
+#$(DEF_FILE) $(LFLAGS) ;
+#<<
+#        copy *.exe ..\bin
+#
+
+#
+# Borland C++ for OS/2
+#
+#CC=bcc
+#CFLAGS= -I. -I$(SET) -I$(PCCTS_H) -w- -v -DUSER_ZZSYN
+#OUT_OBJ = -o
+#LIBS= c2 os2
+#
+#ANTLR=..\bin\antlr
+#DLG=..\bin\dlg
+#OBJ_EXT = obj
+#antlr.exe: antlr.obj scan.obj err.obj bits.obj build.obj fset2.obj \
+#        fset.obj gen.obj globals.obj hash.obj lex.obj main.obj \
+#        misc.obj set.obj pred.obj
+#        tlink @&&|
+#c02 $** -c -v
+#antlr.exe
+#
+#C2 os2
+#
+#|
+#        copy *.exe ..\bin
+#
+
+# *********** Target list of PC machines ***********
+#
+# Don't worry about the ambiguity messages coming from antlr
+# for making antlr.c etc...  [should be 10 of them, I think]
+#
+#antlr.c stdpccts.h parser.dlg tokens.h err.c : antlr.g
+#      $(ANTLR) antlr.g
+#
+#antlr.$(OBJ_EXT): antlr.c mode.h tokens.h
+#
+#scan.$(OBJ_EXT): scan.c mode.h tokens.h
+#
+#scan.c mode.h: parser.dlg
+#      $(DLG) -C2 parser.dlg scan.c
+#
+#set.$(OBJ_EXT): $(SET)/set.c
+#      $(CC) $(CFLAGS) -c $(OUT_OBJ)set.$(OBJ_EXT) $(SET)/set.c
+
+
+
+#
+#   UNIX  (default)
+#
+CC=cc
+ANTLR=../bin/antlr
+DLG=../bin/dlg
+OBJ_EXT=o
+OUT_OBJ = -o
+CFLAGS= -O -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN
+#
+# SGI Users, use this CFLAGS
+#
+#CFLAGS= -O -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN -woff 3262
+OBJ=antlr.o scan.o err.o bits.o build.o fset2.o fset.o gen.o  \
+        globals.o hash.o lex.o main.o misc.o set.o pred.o
+
+antlr : $(OBJ) $(SRC)
+               $(CC) $(CFLAGS) -o antlr $(OBJ)
+               mv antlr ../bin
+
+# what files does PCCTS generate (both ANTLR and DLG)
+PCCTS_GEN=antlr.c scan.c err.c tokens.h mode.h parser.dlg stdpccts.h remap.h
+
+SRC=antlr.c scan.c err.c bits.c build.c fset2.c fset.c gen.c globals.c \
+       hash.c lex.c main.c misc.c $(SET)/set.c pred.c
+
+#
+# Don't worry about the ambiguity messages coming from antlr
+# for making antlr.c etc...  [should be 10 of them, I think]
+#
+#antlr.c stdpccts.h parser.dlg tokens.h err.c : antlr.g
+#      $(ANTLR) -gh antlr.g
+
+antlr.o : antlr.c mode.h tokens.h
+
+scan.o : scan.c mode.h tokens.h
+
+#scan.c mode.h: parser.dlg
+#      $(DLG) -C2 parser.dlg scan.c
+
+set.o : $(SET)/set.c
+       $(CC) $(CFLAGS) -c -o set.o $(SET)/set.c
+
+
+#
+# ****** These next targets are common to UNIX and PC world ********
+#
+
+#clean up all the intermediate files
+clean:
+       rm -f *.$(OBJ_EXT) core
+
+#remove everything in clean plus the PCCTS files generated
+scrub:
+       rm -f $(PCCTS_GEN) *.$(OBJ_EXT) core
diff --git a/antlr/makefile.VMS b/antlr/makefile.VMS
new file mode 100755 (executable)
index 0000000..660e589
--- /dev/null
@@ -0,0 +1,42 @@
+$! File: MAKE.COM - Makefile for ANTLR 1.33 on VAX/OpenVMS
+$!
+$! History:
+$! ---------
+$! 20-Mar-1992  Fred Scholldorf         Hacked together for VAX/VMS.
+$! 24-Mar-1992  Fred Scholldorf         LINK against VAXCRTL sharable library.
+$! 24-Aug-1993  Fred Scholldorf         Upgrade for ANTLR V1.10.
+$!
+$ set noon      !Don't stop on errors.
+$!
+$ if P1 .eqs. "LINK" then goto relink
+$!
+$ define/nolog pccts_h     "[-.h]"
+$ define/nolog support_set "[-.support.set]"
+$!
+$ delete/nolog *.obj;*  !Get rid of existing .OBJ files.
+$!
+$ options = "/INCLUDE=(pccts_h,support_set)"
+$ CC 'options' antlr
+$ CC 'options' scan
+$ CC 'options' err
+$ CC 'options' bits
+$ CC 'options' build
+$ CC 'options' fset2
+$ CC 'options' fset
+$ CC 'options' gen
+$ CC 'options' globals
+$ CC 'options' hash
+$ CC 'options' lex
+$ CC 'options' main
+$ CC 'options' misc
+$ CC 'options' pred
+$ CC 'options' dialog
+$ CC 'options' [-.support.set]set
+$!
+$relink:
+$ LINK antlr,scan,err,bits,build,      -
+       fset2,fset,gen,globals,hash,    -
+       lex,main,misc,pred,dialog,set,  -
+       sys$input:/options
+       sys$share:vaxcrtl.exe/share
+$ EXIT
diff --git a/antlr/stdpccts.h b/antlr/stdpccts.h
new file mode 100755 (executable)
index 0000000..53b819b
--- /dev/null
@@ -0,0 +1,30 @@
+#ifndef STDPCCTS_H
+#define STDPCCTS_H
+/*
+ * stdpccts.h -- P C C T S  I n c l u d e
+ *
+ * Terence Parr, Will Cohen, and Hank Dietz: 1989-1994
+ * Purdue University Electrical Engineering
+ * With AHPCRC, University of Minnesota
+ * ANTLR Version 1.32
+ */
+#include <stdio.h>
+#define ANTLR_VERSION  132
+
+#ifdef __cplusplus
+#ifndef __STDC__
+#define __STDC__
+#endif
+#endif
+#include "set.h"
+#include <ctype.h>
+#include "syn.h"
+#include "hash.h"
+#include "generic.h"
+#define zzcr_attr(attr,tok,t)
+#define zzSET_SIZE 20
+#include "antlr.h"
+#include "tokens.h"
+#include "dlgdef.h"
+#include "mode.h"
+#endif
diff --git a/antlr/tokens.h b/antlr/tokens.h
new file mode 100755 (executable)
index 0000000..60e92ae
--- /dev/null
@@ -0,0 +1,158 @@
+#ifndef tokens_h
+#define tokens_h
+/* tokens.h -- List of labelled tokens and stuff
+ *
+ * Generated from: antlr.g
+ *
+ * Terence Parr, Will Cohen, and Hank Dietz: 1989-1994
+ * Purdue University Electrical Engineering
+ * ANTLR Version 1.32
+ */
+#define zzEOF_TOKEN 1
+#define Eof 1
+#define QuotedTerm 2
+#define Action 34
+#define Pred 35
+#define PassAction 36
+#define WildCard 83
+#define LABEL 85
+#define NonTerminal 93
+#define TokenTerm 94
+#define ID 137
+#define INT 139
+
+#ifdef __STDC__
+void grammar(void);
+#else
+extern void grammar();
+#endif
+
+#ifdef __STDC__
+void class_def(void);
+#else
+extern void class_def();
+#endif
+
+#ifdef __STDC__
+void rule(void);
+#else
+extern void rule();
+#endif
+
+#ifdef __STDC__
+void laction(void);
+#else
+extern void laction();
+#endif
+
+#ifdef __STDC__
+void aLexclass(void);
+#else
+extern void aLexclass();
+#endif
+
+#ifdef __STDC__
+void error(void);
+#else
+extern void error();
+#endif
+
+#ifdef __STDC__
+void tclass(void);
+#else
+extern void tclass();
+#endif
+
+#ifdef __STDC__
+void token(void);
+#else
+extern void token();
+#endif
+
+#ifdef __STDC__
+void block( set *toksrefd, set *rulesrefd );
+#else
+extern void block();
+#endif
+
+#ifdef __STDC__
+void alt( set *toksrefd, set *rulesrefd );
+#else
+extern void alt();
+#endif
+
+#ifdef __STDC__
+extern  LabelEntry *  element_label(void);
+#else
+extern  LabelEntry *  element_label();
+#endif
+
+#ifdef __STDC__
+extern  Node *  element( int not, int first_on_line, int use_def_MT_handler );
+#else
+extern  Node *  element();
+#endif
+
+#ifdef __STDC__
+void default_exception_handler(void);
+#else
+extern void default_exception_handler();
+#endif
+
+#ifdef __STDC__
+extern  ExceptionGroup *  exception_group(void);
+#else
+extern  ExceptionGroup *  exception_group();
+#endif
+
+#ifdef __STDC__
+extern  ExceptionHandler *  exception_handler(void);
+#else
+extern  ExceptionHandler *  exception_handler();
+#endif
+
+#ifdef __STDC__
+void enum_file( char *fname );
+#else
+extern void enum_file();
+#endif
+
+#ifdef __STDC__
+void defines( char *fname );
+#else
+extern void defines();
+#endif
+
+#ifdef __STDC__
+void enum_def( char *fname );
+#else
+extern void enum_def();
+#endif
+
+#endif
+extern SetWordType zzerr1[];
+extern SetWordType setwd1[];
+extern SetWordType zzerr2[];
+extern SetWordType zzerr3[];
+extern SetWordType zzerr4[];
+extern SetWordType zzerr5[];
+extern SetWordType setwd2[];
+extern SetWordType zzerr6[];
+extern SetWordType zzerr7[];
+extern SetWordType zzerr8[];
+extern SetWordType zzerr9[];
+extern SetWordType zzerr10[];
+extern SetWordType zzerr11[];
+extern SetWordType setwd3[];
+extern SetWordType zzerr12[];
+extern SetWordType zzerr13[];
+extern SetWordType zzerr14[];
+extern SetWordType zzerr15[];
+extern SetWordType zzerr16[];
+extern SetWordType zzerr17[];
+extern SetWordType zzerr18[];
+extern SetWordType zzerr19[];
+extern SetWordType setwd4[];
+extern SetWordType zzerr20[];
+extern SetWordType zzerr21[];
+extern SetWordType setwd5[];