[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