[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