Jim, being new to predicates I realised soon after this that you were talking about token lookaheads. And yes I do need a syntactic lookahead (but thas is negative). In beginner-speak, one of my "smaller" rules is "consuming" something that should belong to a "larger" rule. This would be correct if that particular something (e.g. "a") was *not* followed by a syntactic construct conforming to "b". Hence (a !b)=>a (for the smaller rule) seems the simplest solution to this to me. Is Indhu's version correct for doing this trick? It doesn't seem to work for me (but I might be doing something else wrong). If not correct, what is the correct way? My target is Java.
2009/10/5 Jim Idle <[email protected]> > Use a semantic predicate rather than syntactic. You possibly need a bated > predicate here too: > > > > { input.LA(1) == A && input.LA(2) != B}?=> > > > > However, if you need that kind of syntactic predicate, then I suggest you > may be approaching your problem incorrectly. > > > > Jim > > > > *From:* [email protected] [mailto: > [email protected]] *On Behalf Of *Naveen Chawla > *Sent:* Monday, October 05, 2009 7:02 AM > *To:* [email protected] > *Subject:* [antlr-interest] How to do "not" in a syntactic predicate? > > > > If I do > > > > (a ~b)=> a > > > > meaning "take this alternative if you encounter an a when not followed by > b" > > > > I get a syntax error: unexpected token b > > Is it the right syntax to use '~'? > > > > N > > > List: http://www.antlr.org/mailman/listinfo/antlr-interest > Unsubscribe: > http://www.antlr.org/mailman/options/antlr-interest/your-email-address > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en -~----------~----~----~----~------~----~------~--~---
List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
