[antlr-interest] Confused about backtracking

franck102 franck102 at yahoo.com
Mon Nov 28 10:26:58 PST 2011


This is a 20 years old language with zillions of existing lines of code. If I
can get the parser to work even with an awful lot of backtracking then I can
use it to write a translator that cleans up those kind of stupid idioms...

I think your answer gave me the clue I needed though, apparently
backtracking works between alternatives but consuming or not consuming one
instance of a ( )* construct is not considered an alternative. If I replace
the * construct with tail recursion in my example things work fine - I need
to see if that is something I can do in the real grammar.

So my grammar works fine in this form (rest unchanged):

program
        : statement* EOF
        ;
       
statement
        : ID '=' expr
        | sep
        ;

expr	: ID suffix;
	
suffix	: DOT expr
        | /* nothing */
        ;

--
View this message in context: http://antlr.1301665.n2.nabble.com/Confused-about-backtracking-tp7033712p7039813.html
Sent from the ANTLR mailing list archive at Nabble.com.


More information about the antlr-interest mailing list