[antlr-interest] Infinite Recursion

mzukowski at yci.com mzukowski at yci.com
Tue Jan 27 10:42:29 PST 2004


Seems to me it's
dimentia: ("BAR")* ("FOO")* ;

Perhaps with an action to ensure that at least one matched.

Monty

Also see http://javadude.com/articles/lalrtoll.html

Monty

-----Original Message-----
From: Jason [mailto:jasonriz at yahoo.com] 
Sent: Tuesday, January 27, 2004 10:29 AM
To: antlr-interest at yahoogroups.com
Subject: [antlr-interest] Infinite Recursion

Hello,

I'm just run antlr agains a yacc grammar and it
generated hundreds of 'infinite recursion' errors. 
I've spent quite a bit of time on the ANTLR site
(which is excellent by the way) and I'm trying to wrap
my head around all of this stuff.  I understand that
the errors are generated because ANTLR parses top down
so can't handle the Left Hand Recursion which is
common in YACC grammars.  I can convert the LHR for
the simple case which only involves one rule but am at
a bit of a loss to handle the following which is a
much simplified version of a piece of my grammar:

startRule: 
  dimentia;

dimentia:
  gentle | "FOO";

gentle:
  "BAR" | dimentia;

which produces 3 infinite recursion errors.  I
understand the problem but it's not clear to me how to
fix it :)

On a related note - I've noticed that ANTLR doesn't
complain about the following grammar:

startRule:
  dimentia;

dimentia:
  gentle;

gentle:
  dimentia;

Though when I look at the generated parser it seems as
though it would obviously be infinitely recursive. 
Just wondering.  Thanks in advance for any replies!

-jason

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free web site building tool. Try it!
http://webhosting.yahoo.com/ps/sb/

 

Yahoo! Groups Links

To visit your group on the web, go to:
 http://groups.yahoo.com/group/antlr-interest/

To unsubscribe from this group, send an email to:
 antlr-interest-unsubscribe at yahoogroups.com

Your use of Yahoo! Groups is subject to:
 http://docs.yahoo.com/info/terms/ 


 

Yahoo! Groups Links

To visit your group on the web, go to:
 http://groups.yahoo.com/group/antlr-interest/

To unsubscribe from this group, send an email to:
 antlr-interest-unsubscribe at yahoogroups.com

Your use of Yahoo! Groups is subject to:
 http://docs.yahoo.com/info/terms/ 




More information about the antlr-interest mailing list