[antlr-interest] Matching keywords in the lexer

Zheng, Xiaoran xzheng at doubleclick.net
Wed Aug 9 14:31:18 PDT 2006


 I defined this in my lexer to distinguish between the keyword "include"
with other identifiers.

     protected
     ID options{testLiterals=true;/*I have other keywords defined in the
parser*/}
              : ('_'|'a'..'z'|'A'..'Z')('_'|'a'..'z'|'A'..'Z'|'0'..'9')*
              ;
     protected
     INCLUDE  : ("include" STRING SEMI) {/*I will add the code to deal
w/ this later*/}
              ;
     ID_OR_INCLUDE 
              : (ID)=>ID  {$setType(ID);}
              | INCLUDE                          
		  ;

 Is this correct? If so, it doesn't seem to work. What am I doing wrong?

 Any help would be greatly appreciated. Thanks.


-----Original Message-----
From: antlr-interest-bounces at antlr.org
[mailto:antlr-interest-bounces at antlr.org] On Behalf Of Zheng, Xiaoran
Sent: Wednesday, August 09, 2006 4:46 PM
To: Antlr Interest
Subject: [antlr-interest] Matching keywords in the lexer

 
Hi, I am still working on the problem of nested include files.

I am trying to match "keyword filename;", keyword clashes with the
identifier rule. Is there anyway for me to resolve this in the lexer and
do a "keyword filename;" match?

Thanks.

-----Original Message-----
From: antlr-interest-bounces at antlr.org
[mailto:antlr-interest-bounces at antlr.org] On Behalf Of Zheng, Xiaoran
Sent: Wednesday, August 09, 2006 4:32 PM
To: Antlr Interest
Subject: RE: [antlr-interest] java.util.NoSuchElementException

 
The exception is thrown from "uponEOF" which I defined in the lexer.

-----Original Message-----
From: antlr-interest-bounces at antlr.org
[mailto:antlr-interest-bounces at antlr.org] On Behalf Of Terence Parr
Sent: Wednesday, August 09, 2006 4:29 PM
To: Antlr Interest
Subject: Re: [antlr-interest] java.util.NoSuchElementException


On Aug 9, 2006, at 1:22 PM, Zheng, Xiaoran wrote:

> When I have a grammar defined as follows:
>
> A : B*C*
> B : ...
> C : ...
>
> why do I get an NoSuchElementException?

what version?  you missing a semicolon?  A complete grammar please.
Ter


More information about the antlr-interest mailing list