[antlr-interest] C target: overriding parser and lexer error handlers

Vlad Roubtsov vlad at demoninsight.com
Wed Jul 20 17:59:26 PDT 2011


I think can answer my own question: there is a reference to apifuncs at
http://antlr.org/api/C/group__apistructures.html (but not at
http://www.antlr.org/api/C/atsections.html).

On Wed, Jul 20, 2011 at 7:25 PM, Vlad Roubtsov <vlad at demoninsight.com>wrote:

> Greetings,
>
> I am new to ANTLR but have extensive experience with JavaCC. With some
> difficulty (section '@apifuncs' does not appear to be documented but was
> mentioned in this list) I can intercept parser errors with my own
> implementation of displayRecognitionError():
>
> @parser::apifuncs
> {
>     RECOGNIZER->displayRecognitionError = <my parser error function>;
> }
>
> However, lexer errors continued to cause messages to be printed to stderr.
> After some more poking around the source code the following seemed to work:
>
> @lexer::apifuncs
> {
>     LEXER->rec->displayRecognitionError = <my lexer error function>;
> }
>
> My question: are these @(lexer|parser)::apifuncs section declarations the
> supported way to do this? (@members does not work).
>
> Thank you,
> Vlad
>


More information about the antlr-interest mailing list