[antlr-interest] ANTLR Two Simple Questions :-)
Jim Idle
jimi at temporal-wave.com
Tue May 18 08:31:46 PDT 2010
Well, err the method inArray() is an imaginary method that you will write. It just needs to take a string and see if that string is currently something that should be a UNIT_NAME. If it is real simple then you could just use a standard List object of your choice.
Please replay to the list and not my personal email - thanks J
Jim
From: Sameh W. Zaky [mailto:sameh.wz at gmail.com]
Sent: Tuesday, May 18, 2010 7:21 AM
To: Jim Idle
Subject: Re: [antlr-interest] ANTLR Two Simple Questions :-)
Dear Jim,
thanks for your reply.
Concerning point (1):
I did as you said:
fragment UNIT_NAME :;
ID : ('a'..'z'|'_')*
{
if(inArray($text)) $type=UNIT_NAME;
}
;
But when I click 'run' to run a test I get the error:
D:\My Documents\Downloads\Simple Test Grammar\output\SimpleTestLexer.java:604: cannot find symbol
[16:15:56] symbol : method inArray(java.lang.String)
[16:15:56] location: class SimpleTestLexer
[16:15:56] if(inArray(getText())) _type=UNIT_NAME;
Any idea, how I can overcome this?
Thanks again for your time :-)
On Mon, May 17, 2010 at 6:54 PM, Jim Idle <jimi at temporal-wave.com> wrote:
> -----Original Message-----
> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
> bounces at antlr.org] On Behalf Of Sameh W. Zaky
> Sent: Monday, May 17, 2010 7:33 AM
> To: antlr-interest at antlr.org
> Subject: [antlr-interest] ANTLR Two Simple Questions :-)
>
> Dear All,
>
> I am a Masters student, I use Java, and I am trying to make my parser
> with
> the help of ANTLR. I need this for my Masters project.
> I am using ANTLRWorks 1.3.1
> I had 2 questions concerning it:
>
> 1) How can I have a dynamic token name (or dynamic lexer)?
> *Example: (the symbol SERVICE, will have different token values,
> depending
> on certain list (array) whose contents change over time)*
Match the possible sequences generally, then change the token type if the strings match your dynamic list:
fragment SERVICE : ;
ID : ('a'..'z')+
{
If (myLookupMethod($text)) { $type = SERVICE; }
}
;
So the token ID will be returned if the matched text is not in your list and the token SERVICE will be returned if it is.
> 2) Given a certain grammar, how can I (or: is it possible to) get the
> list
> of all possible next tokens?
Read: http://www.antlr.org/wiki/display/ANTLR3/Custom+Syntax+Error+Recovery
Do I get a masters too? ;-)
Jim
List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
--
Sameh W. Zaky
More information about the antlr-interest
mailing list