[antlr-interest] Whitespace matching

Bart Kiers bkiers at gmail.com
Thu Apr 12 11:10:21 PDT 2012


Hi Jason,

On Thu, Apr 12, 2012 at 6:43 PM, Jason Jones <jmjones5 at gmail.com> wrote:

> ...
>
> start : program ;
> program : WHITESPACE line+ WHITESPACE (query WHITESPACE)*;
>
> WHITESPACE  : (' ' | '\t' | '\r' | '\n')* ; //currently only used in string
>
>
A lexer rule must always match something: if it can match zero chars, it
can/will go in an infinite loop.

Do something like this:

start : program ;
program : WHITESPACE? line+ WHITESPACE? (query WHITESPACE?)*;
WHITESPACE  : (' ' | '\t' | '\r' | '\n')+ ;

or simply skip spaces like this:

start : program ;
program : line+ query*;
WHITESPACE  : (' ' | '\t' | '\r' | '\n')+ {skip();} ;

Regards,

Bart.


More information about the antlr-interest mailing list