[antlr-interest] Quoted String Literal - confused by greed=false behavior.
G. Richard Bellamy
rbellamy at pteradigm.com
Wed Jul 27 11:48:35 PDT 2011
I've got a lexer rule that should be gobbling everything after the
double quote '"' except for the last double quote - I basically stole
the rule from a post from Jim Idle
(http://www.antlr.org/pipermail/antlr-interest/2010-March/038051.html).
I've also tried other variations on the same rule, and I'm a bit
confused as it seems the {greedy=false;} option is being ignored.
Any help is appreciated
-----------------------------------------------
INPUT: @"(FOO="")"
-----------------------------------------------
lexer grammar Lexer
options
{
language=CSharp3;
TokenLabelType=CommonToken;
}
DQUOTE : '"';
STRING_LITERAL
: DQUOTE (options { greedy = false; }
: (
(
{input.LA(1) == '"' && input.LA(2) == '"'}? DQUOTE DQUOTE
| ~DQUOTE
)*
)
)
DQUOTE
;
-----------------------------------------------
LEXER TRACE (excerpt):
enter STRING_LITERAL " line=1:7
enter DQUOTE " line=1:7
exit DQUOTE ) line=1:8
enter DQUOTE ? line=1:9
exit DQUOTE ? line=1:9
exit STRING_LITERAL ? line=1:9
line 1:10 mismatched character '<EOF>' expecting '"'
More information about the antlr-interest
mailing list