[antlr-interest] Emit two Tokens in one Lexer Rule
Gavin Lambert
antlr at mirality.co.nz
Tue Feb 12 11:25:30 PST 2008
At 02:16 13/02/2008, Alexander Gängel wrote:
>
>My problem it that I have to decide if I have
an Float like 1.1 or
>an Int DOT Identifiert lik 5.max
>My workaround would be to emit just the first an restart lexing
>from the last correct charterer. So I would Just emit 5 as Int
>and reparse from the Dot.
Which is easy enough with a syntactic predicate:
fragment FLOAT: NUMBER DOT NUMBER;
INT
: NUMBER
((DOT NUMBER) => DOT NUMBER { $type = FLOAT; })?
;
fragment NUMBER: DIGIT+;
fragment DIGIT: '0'..'9';
More information about the antlr-interest
mailing list