[antlr-interest] uh oh...trouble in meaning of (..)=> pred!!!

Gavin Lambert antlr at mirality.co.nz
Thu Mar 15 12:18:04 PDT 2007


At 07:16 16/03/2007, Terence Parr wrote:
 >Hi. I believe a PEG would do
 >a b &c &d
 >using & predicates that match but don't consume.

Actually thinking on it a bit more, I wonder if using a "!!" 
suffix might be more appropriate (as in "a b c!! d!!").  That way, 
one ! means "match, consume, but don't output", and two !s means 
"match, don't consume, and don't output".

(I still think ! should work in the lexer, though, even if only as 
a prefix/suffix for performance reasons.  That's the most common 
case anyway.)

 >Auto backtracking will do the optimal "use synpred only if 
LL(*)
 >fails", but (...)=> manual predicates will force backtracking to 

 >eval the pred.  I can't know what's inside compared to alt
 >whereas with auto backtracking pred is copy of alt.

Oh, right, you have to avoid executing actions while in a path 
that can potentially backtrack, so they need to be gone through 
twice.  Forgot about that.



More information about the antlr-interest mailing list