Short:    Port of Berkeley Yacc v3.0 [bugfixed 19-Aug-96]
Uploader: koessi@chessy.aworld.de (Bernd Koesling)
Type:     dev/c


------- this is taken from the original README -------------

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. 

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. 

Bugs may be reported to corbett@berkeley.edu
Do not expect rapid responses.

------- end of the original README -------------------------

------- this is taken from the original NEW_FEATURES -------

This version of Berkeley Yacc has been extensively
reorganized and contains many new features. It is an amalgam
of three earlier versions of Berkeley Yacc. It is largely
untested, so expect it to contain bugs. When bugs are found
report them to corbett@berkeley.edu. Please include small
examples if possible.

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 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.

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.

------- end of the original NEW_FEATURES -------------------


I found the sources at

  http://www.salam.cae.wisc.edu/hpux/language/byacc-3.0.html

and there were no big changes necessary to compile them for
the Amiga with SAS-C v6.56 (by default, temporary files are
created in "t:").


This archive contains:

byacc          56516  : Amiga binary for any cpu
byacc.020      55684  : Amiga binary for >=68020 cpu
byacc-3.0.lha  36997  : original archive of byacc-3.0
NEW_FEATURES    2541  : original text
pch.lha         4399  : patches to apply to original sources
README          1041  : original text
SCoptions        191  : sas-c 6.56 options
SCoptions.info  4197  : newicon
SMakefile       6229  : this will build everything
SMakefile.info  2096  : newicon


To examine the sources and diffs use the smakefile:

  smake        - to create all dirs and build executable
                 must be called first!
  smake exe    - to build executable
  smake exe020 - to build executable for >=68020 cpu
  smake difs   - to build diffs-file
  smake pats   - to build and archive patch-files
  smake srcs   - to apply the patches
  smake clean  - to remove all created dirs and files
                 exe-files are kept

Therefor you need a complete SAS-C v6.5x installation.


------- *** WARNING ***

Of course this port isn't tested to be called bugfree, so
all riscs are on your own. Don't blame me for any damage -
be it your machine, soft or brain :-)


------- *** FIXED BUG [19 Aug 1996] ***

Normand Belanger  <normand@vlsi.polymtl.ca>
found this one in the previous release to the aminet:


NB> Hello Bernd,
NB>
NB> I'm using your port of BYacc 3.0 for Amiga and I have a
NB> little problem. I have the line "#include <exec/types.h>"
NB> in my yacc file and it gets transformed into
NB> "#include <exec//types.h>" (in the y.tab.c file) which
NB> is (obviously) incorrect.


you're right - I didn't notice this because I always use
local headerfiles (ala "defs.h")

It happens in :

  file      reader.c
  function  copy_text()
  line      405-406      should be deleted, because
                         the Slash is already written out
                         at the beginning of this case-leaf

  I just tried and it seems to be okay now

It was nothing I had changed :-)


have fun - koessi
