Closed modulovalue closed 7 months ago
I'm closing this as stale.
It sounds like a good point. A shift-reduce conflict would not seem to be resolvable by the act of splitting states. However, if I make that change, then various tests fail. Have a look at this example and the tests that use it.
Quote from: https://github.com/mdaines/grammophone/issues/26#issuecomment-1776780227
If that is true, then it seems like there might be a source of inefficiency in the "tainting" LR(1) implementation:
Consider:
https://github.com/kjosib/booze-tools/blob/987cd90d040cc6eba2d46cebd85db0c091cc8692/boozetools/parsing/lr1.py#L210-L217
Shouldn't it then suffice to only consider states that have reduce/reduce conflicts? That is,
if state.has_reduce_reduce_conflict():
instead ofif state.has_conflict():
?