[antlr-interest] Selectively ignoring whitespace

Chris Pinnick cp06 at doc.ic.ac.uk
Wed Jan 14 01:30:16 PST 2009


Thanks that solves my problem.

I'm only using single quotes in that one place, so its fine.


Indhu Bharathi wrote:
> If you are not using single quote anywhere else in the grammar, you can try
> this:
>
> STRING
> 	: 	SINGLEQUOTE ( options {greedy=false;} : . )* SINGLEQUOTE
> 	;
>
> If you are using single quote at other places also, then the problem becomes
> little more complex.
>
> In that case you have to decide in the lexer itself, in which situation you
> must emit WS as default token. For example you can decide to emit WS as
> default token between every pair of DQUOTE. Is it possible to define this
> exactly in your grammar? If it is possible then you can override the emit
> method and have two helped functions setWSDefault and unsetWSDefault.
>
> - Indhu
>
> -----Original Message-----
> From: antlr-interest-bounces at antlr.org
> [mailto:antlr-interest-bounces at antlr.org] On Behalf Of Chris Pinnick
> Sent: Wednesday, January 14, 2009 3:10 AM
> To: antlr-interest at antlr.org
> Subject: [antlr-interest] Selectively ignoring whitespace
>
> I'd like to ignor white space in general, and am doing so currently using
>
> WS : (' '
>     |'t'
>    | '\n' )+
>      {$channel=HIDDEN;} ;
>
>
> but would like to include whitespace characters at certain points, e.g.
> when reading in a text string beginning with a  '
> so I have something like this:
>
> IDENT_WSPACE
>          :  LETTER {(LETTER | DIGIT | WS )*;
>
> input_ident: SINGLEQUOTE string=IDENT_WSPACE SINGLEQUOTE;
>
>
> But it is not currently working, any ideas?
>
> thanks,
> chris
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe:
> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>
>   



More information about the antlr-interest mailing list