+++ /dev/null
- Berkeley Yacc owes much to the unflagging efforts of Keith Bostic.
-His badgering kept me working on it long after I was ready to quit.
-
- Berkeley Yacc is based on the excellent algorithm for computing LALR(1)
-lookaheads developed by Tom Pennello and Frank DeRemer. The algorithm is
-described in their almost impenetrable article in TOPLAS 4,4.
-
- Finally, much of the credit for the latest version must go to those
-who pointed out deficiencies of my earlier releases. Among the most
-prolific contributors were
-
- Benson I. Margulies
- Dave Gentzel
- Antoine Verheijen
- Peter S. Housel
- Dale Smith
- Ozan Yigit
- John Campbell
- Bill Sommerfeld
- Paul Hilfinger
- Gary Bridgewater
- Dave Bakken
- Dan Lanciani
- Richard Sargent
- Parag Patel
+++ /dev/null
- The -r option has been implemented. The -r option tells Yacc to
-put the read-only tables in y.tab.c and the code and variables in
-y.code.c. Keith Bostic asked for this option so that :yyfix could be
-eliminated.
-
- The -l and -t options have been implemented. The -l option tells
-Yacc not to include #line directives in the code it produces. The -t
-option causes debugging code to be included in the compiled parser.
-
- The code for error recovery has been changed to implement the same
-algorithm as AT&T Yacc. There will still be differences in the way
-error recovery works because AT&T Yacc uses more default reductions
-than Berkeley Yacc.
-
- The environment variable TMPDIR determines the directory where
-temporary files will be created. If TMPDIR is defined, temporary files
-will be created in the directory whose pathname is the value of TMPDIR.
-By default, temporary files are created in /tmp.
-
- The keywords are now case-insensitive. For example, %nonassoc,
-%NONASSOC, %NonAssoc, and %nOnAsSoC are all equivalent.
-
- Commas and semicolons that are not part of C code are treated as
-commentary.
-
- Line-end comments, as in BCPL, are permitted. Line-end comments
-begin with // and end at the next end-of-line. Line-end comments are
-permitted in C code; they are converted to C comments on output.
-
- The form of y.output files has been changed to look more like
-those produced by AT&T Yacc.
-
- A new kind of declaration has been added. The form of the declaration
-is
-
- %ident string
-
-where string is a sequence of characters begining with a double quote
-and ending with either a double quote or the next end-of-line, whichever
-comes first. The declaration will cause a #ident directive to be written
-near the start of the output file.
-
- If a parser has been compiled with debugging code, that code can be
-enabled by setting an environment variable. If the environment variable
-YYDEBUG is set to 0, debugging output is suppressed. If it is set to 1,
-debugging output is written to standard output.
+++ /dev/null
-Berkeley Yacc reflects its origins. The reason so many routines
-use exactly six register variables is that Berkeley Yacc was
-developed on a VAX using PCC. PCC placed at most six variables
-in registers. I went to considerable effort to find which six
-variables most belonged in registers. Changes in machines and
-compilers make that effort worthless, perhaps even harmful.
-
-The code contains many instances where address calculations are
-performed in particular ways to optimize the code for the VAX.
+++ /dev/null
- Berkeley Yacc is distributed with no warranty whatever. The author
-and any other contributors take no responsibility for the consequences of
-its use.
+++ /dev/null
- Berkeley Yacc is an LALR(1) parser generator. Berkeley Yacc has been made
-as compatible as possible with AT&T Yacc. Berkeley Yacc can accept any input
-specification that conforms to the AT&T Yacc documentation. Specifications
-that take advantage of undocumented features of AT&T Yacc will probably be
-rejected.
-
- Berkeley Yacc is distributed with no warranty whatever. The code is certain
-to contain errors. Neither the author nor any contributor takes responsibility
-for any consequences of its use.
-
- Berkeley Yacc is in the public domain. The data structures and algorithms
-used in Berkeley Yacc are all either taken from documents available to the
-general public or are inventions of the author. Anyone may freely distribute
-source or binary forms of Berkeley Yacc whether unchanged or modified.
-Distributers may charge whatever fees they can obtain for Berkeley Yacc.
-Programs generated by Berkeley Yacc may be distributed freely.
-
- Please report bugs to
-
- robert.corbett@eng.Sun.COM
-
-Include a small example if possible. Please include the banner string from
-skeleton.c with the bug report. Do not expect rapid responses.
-.\" $OpenBSD: yacc.1,v 1.22 2009/02/10 19:24:17 jmc Exp $
+.\" $OpenBSD: yacc.1,v 1.23 2010/07/20 12:53:43 jmc Exp $
.\"
.\" Copyright (c) 1989, 1990 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" from: @(#)yacc.1 5.7 (Berkeley) 7/30/91
.\"
-.Dd $Mdocdate: February 10 2009 $
+.Dd $Mdocdate: July 20 2010 $
.Dt YACC 1
.Os
.Sh NAME
be written to the file
.Pa y.output .
.El
+.Pp
+.Ex -std yacc
.Sh ENVIRONMENT
.Bl -tag -width TMPDIR
.It Ev TMPDIR
The flags
.Op Fl or
are extensions to that specification.
+.Sh HISTORY
+Berkeley Yacc was originally developed using PCC on a VAX with the
+intent of being as compatible as possible with AT&T Yacc.
+Much is owed to the unflagging efforts of Keith Bostic.
+His badgering kept me working on Yacc long after I was ready to
+quit.
+.Pp
+Berkeley Yacc is based on the excellent algorithm for computing
+LALR(1) lookaheads developed by Tom Pennello and Frank DeRemer.
+The algorithm is described in their almost impenetrable article in
+TOPLAS 4,4.
+.Pp
+Finally, much credit must go to those who pointed out deficiencies
+of earlier releases.
+Among the most prolific contributors were
+Benson I. Margulies,
+Dave Gentzel,
+Antoine Verheijen,
+Peter S. Housel,
+Dale Smith,
+Ozan Yigit,
+John Campbell,
+Bill Sommerfeld,
+Paul Hilfinger,
+Gary Bridgewater,
+Dave Bakken,
+Dan Lanciani,
+Richard Sargent,
+and
+Parag Patel.
+.Sh AUTHORS
+The
+.Nm
+utility was written by
+.An Robert Corbett .