[antlr-interest] zero or more vs. optional one or more

Christian chwchw at gmx.de
Sun Jan 22 02:08:36 PST 2012


Hello everybody,

I wonder why the following lexer rules do not show equivalent behavior:

fragment Verbatim_string_literal
  : '@' DOUBLE_QUOTE Verbatim_string_literal_characters? DOUBLE_QUOTE
  ;
fragment Verbatim_string_literal_characters
  : Verbatim_string_literal_character+
  ;

versus

fragment Verbatim_string_literal
  : '@' DOUBLE_QUOTE Verbatim_string_literal_character* DOUBLE_QUOTE
  ;

The first one does not parse @"Hello World!", the second however does.

Regards,
Christian

P.S.

fragment Verbatim_string_literal_character
  : c=Single_verbatim_string_literal_character
  | c=Quote_escape_sequence
  ;
fragment Single_verbatim_string_literal_character
  : ~DOUBLE_QUOTE //<any Character Except ">
  ;
fragment Quote_escape_sequence
  : DOUBLE_QUOTE DOUBLE_QUOTE
  ;



More information about the antlr-interest mailing list