help-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Conflicts in large grammar


From: Laurence Finston
Subject: Re: Conflicts in large grammar
Date: Wed, 8 Aug 2007 21:09:45 +0200 (CEST)

On Wed, 8 Aug 2007, Hans Aberg wrote:

> On 8 Aug 2007, at 14:20, Laurence Finston wrote:
> 
> The Bison from the CVS works fine, too. :-)
> 

That's a good idea, thanks.  I didn't think of doing that.  As long as I 
had to install it locally, I might as well keep up with the development 
versions.

> >It would be nice to know exactly what makes Bison abort.  I suspect it has
> >to do with the states, but I wasn't able to understand why it would fail
> >in some cases and not in others.
> 
> It can be difficult. Some work has been done in order to extend the old Bison
> limits, just in order to enable larger grammars, but I do not know exactly its
> state. And only the latest version is developed. So if an older version does
> not work, the only option is to switch to the latest, and if that one does not
> work, trying to get that one fixed.

I'm sure you're right that it's a good idea to try to get rid of the s/r 
conflicts.  I've gotten rid of some rules that follow this pattern:

command: message_command

message_command: error_message

message_command: message

Now I've got:

command:  message

command: error_message

(These are just examples, the real code was a bit different.)

In the one case I checked, getting rid of the entire subcategory of 
`command', e.g., `message_command' with all of the rules with 
`message_command' on the left-hand side, got rid of precisely one state, 
and didn't reduce the number of s/r conflicts at all.  

I liked having the subcategories of `command' because it made it clearer 
for a person reading the grammar.  I'm now not sure whether it's a problem 
for Bison or not.  However, I don't really feel like putting them all back 
in again.

Anyway, thanks again, and I apologize for not thinking of trying the most 
recent version before asking.

Laurence






reply via email to

[Prev in Thread] Current Thread [Next in Thread]