[comp.lang.perl] patches 19-27 -- # shift/reduce,reduce/reduce conflicts with Bison

composer@bucsf.bu.edu (Jeff Kellem) (08/12/90)

Just so people know what to expect for conflicts in the perl.y grammar if
they are using bison 1.11, for perl.y:

Expect 27 shift/reduce and 61 reduce/reduce conflicts...

and for a2p.y:

Expect 226 shift/reduce conflicts...

I haven't checked out the grammars to see if these differences will cause
problems.  But, this is just FYI...

Cheers...

			-jeff

Jeff Kellem
INTERNET: composer@cs.bu.edu  (or composer@bu.edu)
UUCP: ...!harvard!bu-cs!composer

tkacik@rphroy.uucp (Tom Tkacik) (08/13/90)

In article <COMPOSER.90Aug11174208@bucsf.bu.edu>, composer@bucsf.bu.edu
(Jeff Kellem) writes:
|> Just so people know what to expect for conflicts in the perl.y grammar if
|> they are using bison 1.11, for perl.y:
 
|> Expect 27 shift/reduce and 61 reduce/reduce conflicts...
(Larry reports that yacc produces 59 reduce/reduce conflicts.)
 
|> I haven't checked out the grammars to see if these differences will cause
|> problems.  But, this is just FYI...
 
Regardless of the version of yacc used, (yacc, berkley yacc, bison), the number
of shift/reduce and reduce/reduce conflicts should be the same.
Does anybody know which parser generator has the bug?
--
Tom Tkacik				...uunet!edsews!rphroy!tkacik
GM Research Labs			tkacik@kyzyl.mi.org
"I'm president of the United States, and I'm not going to eat anymore
broccoli."
						--- George Bush

cmf@obie.cis.pitt.edu (Carl M. Fongheiser) (08/13/90)

In article <31306@rphroy.UUCP> tkacik@rphroy.uucp (Tom Tkacik) writes:
>Regardless of the version of yacc used, (yacc, berkley yacc, bison), the number
>of shift/reduce and reduce/reduce conflicts should be the same.
>Does anybody know which parser generator has the bug?

Neither.  Larry changed the grammar, but apparently forgot to update the
messages in Makefile.SH.  I used yacc and got the same numbers bison did.

				Carl Fongheiser
				cmf@unix.cis.pitt.edu

lwall@jpl-devvax.JPL.NASA.GOV (Larry Wall) (08/13/90)

In article <28008@unix.cis.pitt.edu> cmf@obie.cis.pitt.edu (Carl M. Fongheiser) writes:
: In article <31306@rphroy.UUCP> tkacik@rphroy.uucp (Tom Tkacik) writes:
: >Regardless of the version of yacc used, (yacc, berkley yacc, bison), the number
: >of shift/reduce and reduce/reduce conflicts should be the same.
: >Does anybody know which parser generator has the bug?
: 
: Neither.  Larry changed the grammar, but apparently forgot to update the
: messages in Makefile.SH.  I used yacc and got the same numbers bison did.

Guess again...

What we have apparently have here is two different strains of yacc, and
bison followed one of them.  Or some vendors have secretly switched to
using bison.  Or have patched their yacc to be more bisonlike.  Or something.
Anyway, yacc under 4.3, SunOS, Masscomp and Pyramid makes 29 and 59 just
like the Makefile says.

Now, I freely admit that for a2p the number is off because I forgot to
update the Makefile.

Larry

lisch@mentor.com (Ray Lischner) (08/14/90)

>  In article <COMPOSER.90Aug11174208@bucsf.bu.edu>, composer@bucsf.bu.edu
>  (Jeff Kellem) writes:
>  |> Just so people know what to expect for conflicts in the perl.y grammar if
>  |> they are using bison 1.11, for perl.y:
>
>  |> Expect 27 shift/reduce and 61 reduce/reduce conflicts...
>  (Larry reports that yacc produces 59 reduce/reduce conflicts.)
>
>  |> I haven't checked out the grammars to see if these differences will cause
>  |> problems.  But, this is just FYI...
>
>  Regardless of the version of yacc used, (yacc, berkley yacc, bison), the number
>  of shift/reduce and reduce/reduce conflicts should be the same.

Agreed.  Here are my results on an Apollo, running Domain/OS 10.3,
using Bison 1.11, Corbett's Berkeley Yacc, and Apollo's release of
plain, old yacc:

% bison -y perl.y
conflicts:  27 shift/reduce, 61 reduce/reduce
% byacc perl.y
byacc: 29 shift/reduce conflicts, 59 reduce/reduce conflicts.
% yacc perl.y

conflicts: 29 shift/reduce, 59 reduce/reduce



>  Does anybody know which parser generator has the bug?

I don't know, yet.  The y.output files from each are sufficiently
different to make it difficult to compare.  It will take some time...
-- 
Ray Lischner        UUCP: {uunet,apollo,decwrl}!mntgfx!lisch