[antlr-interest] C++ grammar, troubleshooting mutually left recursive rules
John B. Brodie
jbb at acm.org
Sat Apr 7 14:06:53 PDT 2012
On 04/06/2012 04:10 PM, Ludwig Maes wrote:
> Hello, thanks for helping me out
> My misunderstanding was that I thought recursion meant (in)directly
> calling itself (of which I could not find a cycle). If I understand
> correctly, you point out that "mutually left-recursive" actually means
> that the call trees of the 3 functions intersect. Why is that not
> allowed? it would seem to imply every rule may only be usaged in just
> one other rule?
Sorry for my error.
You are correct. Mutual left recursion is a (possibly indirect) cycle.
For some reason I mis-read your question and was responding to removing
ambiguity by finding common left prefixes. Which was not your question
and may not be a problem with these particular rules.
> I.e. : if I define a rule called digit, I can use/call this rule in
> other rules. Why would that be allowed but not what we have here be
> Perhaps there is a real recursion but when I draw the directed graph
> of calls in the steps you mention I get an acyclic graph...
> I must be misunderstanding something
Sorry for the noise.
More information about the antlr-interest