[antlr-interest] Reporting errors from rules
Terence Parr
parrt at cs.usfca.edu
Tue Sep 2 11:00:13 PDT 2008
On Sep 2, 2008, at 3:54 AM, Florian Weimer wrote:
> I'd like to report errors from rules because I want to reuse existing,
> non-ANTLR parsers and make the lexer rules a bit more lenient than
> what's actually in the language. For instance, in
>
> IPV4_ADDRESS : ('0' .. '9' | '.')+;
>
> address returns [IPv4Address address]
> : IPV4_ADDRESS
> {
> try {
> $address = new IPv4Address($IPV4_ADDRESS.text);
> } catch (IllegalArgumentException e) {
> ???
> }
> };
>
> I want to report an error at the location of the IPV4_ADDRESS token if
> the token is not actually an IPv4 address.
The problem is that ANTLR Is controlling what tokens are attempted. If
the input is not consistent with IPV4_ADDRESS, ANTLR will never call
that rule. Hence you cannot cause an error is there.
Ter
More information about the antlr-interest
mailing list