[antlr-interest] Keywords not context-free
    Johannes Luber 
    jaluber at gmx.de
       
    Tue Oct 16 05:25:56 PDT 2007
    
    
  
Clifford Heath wrote:
> Yes, that will probably work. It's a pain though, because in this context,
> all but three of the language's keywords need to be accepted as normal
> identifiers, as part of an arbitrary length string of such identifiers.
> Ugly, because I need to list all the other keywords of the language, so
> I wondered whether there was a better way :-).
How about using always IDENTIFIER tokens except for the context-free
keywords and test at the appropriate places, if the IDENTIFIER contains
the correct string?
contextual_keyword[string identifier]
	:	 { input.LT(1).Text() == $identifier }? IDENTIFIER
	;
should work. Then use contextual_keyword["keyword"] instead KEYWORD.
Johannes
    
    
More information about the antlr-interest
mailing list