Unresolvable simple epsilon-related local ambiguity.
modulovalue opened this issue · 1 comments
modulovalue commented
Consider the following:
tokens {
ka <= `a`;
kb <= `b`;
kd <= `d`;
ws <- `\n` | `\r` | `\t` | ` `;
}
lexer {
main { body }
mode body {
ws => { pass; }
ka => { emit; }
kb => { emit; }
kd => { emit; }
eof => { pop; }
}
}
parser {
main { S }
S <- `a` B `b` `d`;
B <- `b` | eps;
}
test {
`a b b d` <<>>;
`a b d` <<>>;
}
langcc is neither able to resolve the conflict here, nor provide any guidance that the conflict could be easily resolved by inlining B.
I'm wondering: are conflicts of this kind intentionally not being handled by langcc (because there might be a good reason not to?) or are they just something that were not considered a high priority?
modulovalue commented
Because langcc appears to be abandoned, I'm going to close this issue.