[antlr-interest] [WARNING - NOT VIRUS SCANNED] Re: natural-language parsing problem: How to distinguish between special words and regular words

Sven Prevrhal sprevrha at gmail.com
Mon Feb 9 08:03:03 PST 2009


Markus,

Thanks - almost totally worked! The only thing that needed change was 

 

unit: {IsUnit(input.LT(1).Text)}?=> WORD;

 

instead of

 

unit: {IsUnit(input.LA(1).Text)}?=> WORD;

 

Cheers, Sven

 

>>> Markus wrote:

 

I don't know much about your grammar, but if you want to do this then 

gated semantic predicates might help:

 

unit: {IsUnit(input.LA(1).Text)}?=> WORD;

 

This uses the IsUnit method to decide if the next token is a unit 

without taking the token off the token stream. If IsUnit returns false 

the unit rule will be invisible to the parser and it will try to find 

another rule that matches.

 

Markus

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20090209/0f91622a/attachment.html 


More information about the antlr-interest mailing list