fragment NAME : ;
IDENTIFIER : LETTER (LETTER | NUMBER)*
                        (
                                  ':' { $type = NAME; }
                                |
                        )
;

However you could just do that in the parser, which would allow better
error reporting I suspect.


Jim

> -----Original Message-----
> From: [email protected] [mailto:antlr-interest-
> [email protected]] On Behalf Of Scott Smith
> Sent: Tuesday, August 23, 2011 2:19 PM
> To: [email protected]
> Subject: [antlr-interest] Lexer question
>
> I have a parser that is doing pretty much what I want.  However, I want
> to do the following.
>
> I have a definition for an IDENTIFIER
>
> IDENTIFIER: LETTER (LETTER | NUMBER)                // LETTER and
> NUMBER mean the usual thing
>
> Now in some of my rules, I'm looking for an IDENTIFIER and in one of my
> rules I look for a NAME.  NAME has exactly the same definition as
> IDENTIFIER (starts with a letter followed by alphanumerics).  However,
> you can tell by the token after whether it was a NAME or an IDENTIFIER.
> To be more explicit, a NAME is ALWAYS followed by a colon.  An
> IDENTIFIER can be followed by a number of things, but NEVER by a colon.
>
> So, I have rules that looksomething like:
>
> rule1:
>                 NAME ':' expression
>                 ;
>
> rule2:
>                 IDENTIFIER '+' expression
>       |       IDENTIFIER  '-' expression
>      ;
>
> I don't seem to be able to make this work.  Can someone suggest a
> solution?  Do I have to turn on backtracking to make this work?
>
> Thanks
>
> Scott
>
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-
> email-address

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.

Reply via email to