[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