[antlr-interest] Manipulating text in the lexer
Gavin Lambert
antlr at mirality.co.nz
Thu Feb 26 12:12:07 PST 2009
At 04:48 27/02/2009, Sam Barnett-Cormack wrote:
>http://www.antlr.org/blog/antlr3/lexical.tml suggests that it's
>no longer possible to alter the content of a token away from
>what's on the input at all.
That isn't true. You can use setText or $text = "..." to change
the text of a token just fine.
What's probably biting you, though, is that this only works from
the top-level lexer rule. You can't change the text of a fragment
(or rather, you can, but it won't end up being used in the final
token).
>fragment
>CSTRINGNL : WSNONL* NL WSNONL* {setText("");};
So this setText will have absolutely no effect.
>CSTRING : '"' ((CSTRINGNL)=> CSTRINGNL | '""' | ~'"') '"';
But if you called it here, then it would work.
More information about the antlr-interest
mailing list