[antlr-interest] How to write this lexer rule?

Gavin Lambert antlr at mirality.co.nz
Wed Jan 14 01:50:08 PST 2009


At 20:58 14/01/2009, chain one wrote:
>I am still working on this. Searching for solutions that could 
>make the IDENT rule and FUNCTION_DECL work together.

Well, one thing you could try would be:

IDENT
   : ('FUNCTION') => FUNCTION_DECL { $type = FUNCTION_DECL; 
$channel = HIDDEN; }
   | ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*
   ;

I wouldn't have thought it'd be necessary, though; ANTLR ought to 
be able to figure that out on its own.

Although -- it's generally a good idea to put the more "vague" 
lexer rules further down, so try making sure that the 
FUNCTION_DECL rule is listed before the IDENT rule (instead of 
doing the above) and see if that helps.



More information about the antlr-interest mailing list