[antlr-interest] infinite recursion

Nigel Sheridan-Smith nbsherid at secsme.org.au
Sun Feb 27 16:01:35 PST 2005



> -----Original Message-----
> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
> bounces at antlr.org] On Behalf Of jean.morissette666 at videotron.ca
> Sent: Monday, 28 February 2005 7:18 AM
> To: antlr-interest at antlr.org
> Subject: [antlr-interest] infinite recursion
> 
> Hi,
> Is it possible to resolve the infinite recursion to rule expression
> from rule6?
> 
> expression
> 	:	LPAREN rule1 RPAREN
> 	|	IDENTIFIER
> 	|	rule2
> 	|	rule3
> 	|	rule4
> 	|	rule5
> 	|	rule6
> 	;
> 
> rule6
> 	:	"first" LPAREN rule1 RPAREN
> 	|	"last" LPAREN rule1 RPAREN
> 	|	expression LBRACKET rule1 RBRACKET
> 	|	expression rule7 IDENTIFIER
> 	|	expression rule7 IDENTIFIER LPAREN RPAREN
> 	|	expression rule7 IDENTIFIER LPAREN rule8 RPAREN
> 	;
> 

Left factor:

expression
	:	(LPAREN rule1 RPAREN)* (...)?
      |	...


Alternatively, syntactic predicates might work, but I've never tried them
for this sort of thing:

rule6
	:	...
	|	(expression rule7) => expression rule7 IDENTIFIER 
						(LPARAN (rule8)? RPARAN)? 
	;


Nigel

--
Nigel Sheridan-Smith
PhD research student

Faculty of Engineering
University of Technology, Sydney
Phone: 02 9514 7946
Fax: 02 9514 2435



More information about the antlr-interest mailing list