[antlr-interest] Matching Substring In Lexer

Jim Idle jimi at temporal-wave.com
Mon Apr 26 13:54:54 PDT 2010


TEXTINPUT : '$'
              (   ('a'..'z'| 'A'..'Z')+
                | { $type = ANYTHING; }
              )
          ;
ANYTHING  : . ;

Jim

> -----Original Message-----
> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
> bounces at antlr.org] On Behalf Of Kunal Sawlani
> Sent: Monday, April 26, 2010 1:41 PM
> To: antlr-interest at antlr.org
> Subject: [antlr-interest] Matching Substring In Lexer
> 
> Hi All,
> I have been trying to solve a problem which I have been having in the
> lexer,
> but with no luck. My example goes as follows.
> I have a simple grammar with two tokens.
> I want to treat the the string "$ text" as a token TEXTINPUT and
> everything
> else as a token ANYTHING, which matches anything.
> The scanning process works fine when you supply it the string "$ TEXT",
> the
> correct token is returned. And if any other character is supplied, the
> token
> ANYTHING is returned.
> However, for the string "$1", the scanner complaints that it was
> looking for
> ' ', and no viable alternative for 1. What I want it to return is two
> tokens
> ANYTHING for the "$", and another token ANYTHING for "1". I was reading
> into
> the concept of syntactic
> predicates to solve this issue, but I am not quiet getting it right. If
> anyone could point me in the right direction, it would be great. Also,
> I
> wanted to know if there are any other approaches to solve this issue. I
> got
> the syntactic predicates concept after reading the following article
> http://www.jguru.com/faq/view.jsp?EID=459059
> 
> <http://www.jguru.com/faq/view.jsp?EID=459059>Any help would be greatly
> appreciated!
> Thanks
> 
> --
> Kunal Sawlani
> 
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-
> email-address





More information about the antlr-interest mailing list