To Sinan --> RE: [antlr-interest] Simple questions

Eli Mesika elim at tti-telecom.com
Sun Mar 3 08:10:38 PST 2002


Thanks for your quick respond.

Since I have another lexer rule :

ID
	:	(LETTER|UNDERSCORE)
(LETTER|UNDERSCORE|MINUS|DOT|DIGIT)*
	;

and I have added the following :

CATCH_LITERAL_TOKENS: "connect!"

I have to use k=8 in the lexer options.

Isn't that expensive ???
I used till now k=2 for my grammar, is there any other solution that doesn't
force me to increase k ???

Thanks


-----Original Message-----
From: Sinan [mailto:sinan.karasu at boeing.com]
Sent: Thursday, February 28, 2002 7:53 PM
To: antlr-interest at yahoogroups.com
Subject: Re: [antlr-interest] Simple questions


Eli Mesika wrote:
> 
> HI folks
> 
> I have a real problem in using '!' in the Antlr Tokens section.
> I have tried Matthew's solution, it doesn't work.
> 
> Attached please find connect.g which describes the "connect" language.
> The language can recognize the following statement:
> (connect a b)
> However, the exact command is
> (connect! a b)
> if you are generating java files from it compiling and running Main it
will
> accept (connect a b)
> However if you change the CONNECT token in the .g file to "connect!" and
> test (connect! a b) you
> will get an error.
> 
> Am I missing something ???
> 
> Please HELP.
> Thanks


The way nextToken works in lexer, you have to have a rule that accepts
the token before a hash
table is consulted for keywords.

so do in the lexer

CATCH_LITERAL_TOKENS:  ( "connect!" | "whatever_else_i_want!@#") ;

so on...

you HAVE TO HAVE testLiterals=true; for this to work.....


I think nextToken should check the keyword  table after consuming 
until a special token ( such as WS ) is seen. But both Ter and Ric are
pretty busy these days.....

 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 


 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 



More information about the antlr-interest mailing list