[antlr-interest] Lexer token gating predicate problems

Red Rackham redrackem at yahoo.com
Fri Nov 12 07:46:35 PST 2010


Hi I'm new so please go easy on me.  I have a situation where I have a PATH_ID 
that has to allow many characters, and a general ID that has to match many 
characters, but have their unique patterns.

So in my combined grammar in the lexer section, I have defined PATH_ID & 
IDENTIFIER.  I have also other tokens defined like INTEGER, STRING, etc.

So when I try to run input through the final implemenation (target=Python) I get 

PATH_ID catching IDENTIFIERS, and just about anything else.  What do I do to 
make PATH_ID only activate in context of "include PATH_ID" or "log PATH_ID", and 

never for other identifiers?

I've tried a lot of stuff with reordering tokens, predicates and gating symbols 
and no matter what I've tried it doesn't compile AND run right.  ("The following 

token definitions can never be matched because prior tokens match the same 
input", "rule PATH_ID has no defined parameters", "failed prediate", &c).  If I 
comment out PATH_ID then IDENTIFIER works fine, but I can't have a grammar 
without PATH_ID. 


Thanks in advance!
Mark



      


More information about the antlr-interest mailing list