mirror of
https://git.FreeBSD.org/ports.git
synced 2024-10-24 21:01:20 +00:00
1cbce94c51
GNU's YACCalike parser generator. PR: 10839 Submitted by: Jerry Hicks <wghicks@bellsouth.net>
23 lines
1.0 KiB
Plaintext
23 lines
1.0 KiB
Plaintext
From: Paul Rubin <phr@fsf.org>
|
|
Subject: Re: Bison documentation?
|
|
|
|
The main difference between Bison and Yacc that I know of is that
|
|
Bison supports the @N construction, which gives you access to
|
|
the starting and ending line number and character number associated
|
|
with any of the symbols in the current rule.
|
|
|
|
Also, Bison supports the command `%expect N' which says not to mention
|
|
the conflicts if there are N shift/reduce conflicts and no reduce/reduce
|
|
conflicts.
|
|
|
|
The differences in the algorithms stem mainly from the horrible
|
|
kludges that Johnson had to perpetrate to make Yacc fit in a PDP-11.
|
|
|
|
Also, Bison uses a faster but less space-efficient encoding for the
|
|
parse tables (see Corbett's PhD thesis from Berkeley, "Static
|
|
Semantics in Compiler Error Recovery", June 1985, Report No. UCB/CSD
|
|
85/251), and more modern technique for generating the lookahead sets.
|
|
(See "Efficient Construction of LALR(1) Lookahead Sets" by F. DeRemer
|
|
and A. Pennello, in ACM TOPLS Vol 4 No 4, October 1982. Their
|
|
technique is the standard one now.)
|