[antlr-interest] Find X :-)

John B. Brodie jbb at acm.org
Tue May 18 08:25:00 PDT 2010


On Tue, 2010-05-18 at 17:10 +0200, Sameh W. Zaky wrote:
> OK, Sorry for that!
> 
> Just after I have sent this message I realized that the problem is that
> ANTLR cannot find my method myLookUpMethod..
> I have defined it in @members{} part of the grammar file.. But ANTLR still
> cannot find it.. Any idea?

since it is in the lexer, the method needs to be defined in a
@lexer::members{} section....

@members{} defaults to the parser when placed in a combined grammar.

> 
> On Tue, May 18, 2010 at 4:35 PM, Sameh W. Zaky <sameh.wz at gmail.com> wrote:
> 
> > Dear All,
> >
> > I have in my grammar:
> >
> > fragment UNIT_NAME :;
> >
> > ID : ('a'..'z'|'_')*
> >  {
> > if ( myLookUpMethod( *X* ) ) $type=UNIT_NAME;
> >  }
> > ;
> > ===============================
> >
> > Instead of *X*, I wanna refer to the text that is in red.. For example,
> > the token "w_aw_s"  is ID. I want to take the text of this token "w_aw_s"
> > and look it up in a certain array and if it is in this array then I set its
> > type to UNIT_NAME.
> >
> > P.S.: I tried to replace *X* with *$text* but I receive the error:
> >
> > [16:15:56] symbol  : method myLookUpMethod(java.lang.String)
> > [16:15:56] location: class SimpleTestLexer
> > [16:15:56]             if(myLookUpMethod(getText())) _type=UNIT_NAME;
> > [16:15:56]                ^
> > [16:15:56] 1 error
> >
> > Find X :-)
> >
> > Many Thanks !
> > --
> > Sameh W. Zaky
> >
> 
> 
> 





More information about the antlr-interest mailing list