[antlr-interest] Fragments and setText appear to not work at all - not even with code from the book
kroepke at classdump.org
Thu Nov 22 06:55:16 PST 2007
On Nov 22, 2007, at 1:37 PM, Harald Mueller wrote:
> I tried to track discussions of this issue in all of 2007. What I
> came up with after about 2 hours search (for "fragment", "setText",
> "!"(!)) in all text is only the following:
I'm sure there's more, because I vividly remember those dicussions.
sorry I have no links right now. Maybe it was back 2006, dunno. The
first beta release wasn't the beginning of development on v3. I've
been involved since late 2005 and at the time Ter had been working on
it for quite some time, already.
> On Apr 20, 2007, at 4:36 AM, Wincent Colaiuta wrote:
>> Replying to my own post with a more fleshed-out example grammar. My
>> question is, does the ! operator no longer have any effect in lexer
>> rules in ANTLR 3?
> At the moment, it does not work in version 3.
> Is this to mean that it will work one day?
The ! operator is pretty ugly to implement when all you have is
indices. If you are copying text like v2 does, it's trivial, because
then you just don't copy the text for a token/char if there's the !
operator tacked on.
With indices there can be holes in your character index ranges which
makes it non-trivial to assemble the text later on, aside from the
complexity of storing these non-contiguous ranges.
It is possible, but there are workarounds for most of the cases where
you might want it. If everything else fails, it is possible to
implement (and I think the ! is properly lexed and parsed by ANTLR).
So in theory you could write it yourself ;)
IIRC Ter was against implementing it for ANTLR v3 because it is hard
to get it right *and* efficient.
More information about the antlr-interest