|
From: | Derek M Jones |
Subject: | Re: Reducing conflict: Was: Exceeded limits of %dprec/%merge? |
Date: | Fri, 19 May 2006 20:18:06 +0100 |
User-agent: | Thunderbird 1.5 (Windows/20051201) |
Joel,
One possible solution would be to allow the grammar writer to specify weights for a particular reduction. When a conflict occurred the one with the greatest weight would be chosen.A conflict action (which we proposed earlier) could be encoded with these weights so it could choose a reduction before a split could occur.
This weights idea is very grand and it sounds like a huge amount of work. I'm not sure the effort is worth it (to implement it and then to use it). I have no problem with splits (apart from the performance penalty they cause). They are a natural occurrence in a glr grammar. The whole point is that there is insufficient information at the split point to make a decision. Once more tokens have been parsed, then we have a better idea what needs to be done. Bison needs to make life easy for people to make decisions when an ambiguity cannot be resolved. On the subject of new features. I have just been bitten (again) by not being able to execute any actions in when multiple parse stacks are in existence. Having a way of specifying a non-deferred action would solve a recurring problem of mine. -- Derek M. Jones tel: +44 (0) 1252 520 667 Knowledge Software Ltd mailto:address@hidden Applications Standards Conformance Testing http://www.knosof.co.uk
[Prev in Thread] | Current Thread | [Next in Thread] |