Folks

I have a grammar A that imports B.  One thing I'd like to do is to provide a 
mechanism for non-default error reporting in A and B and I do this in the way 
described here

        http://www.antlr.org/wiki/display/ANTLR3/Error+reporting+and+recovery

Thing is, I have to plug this code 

  private ErrorReporter errorReporter = null;
  
  public void setErrorReporter(ErrorReporter errorReporter) {
    this.errorReporter = errorReporter;
    <delegate>.setErrorReporter(errorReporter);
  }

  // Overrides parser/lexer emitErrorMsg   
  public void emitErrorMessage(String msg) {
    if (errorReporter == null) {
      super.emitErrorMessage(msg);
    } else {
      errorReporter.reportError(msg);
    }
  }

into all the grammars where I want this functionality, including the imported 
grammars.

What I'd like to do is to define subclasses of Parser and TreeParser that 
include this behavior already.  I need a way for the method setErrorReporter() 
in A to also work on B.  Where I have <delegate> above is where I do this.  

The issue is that, if I provide these methods in defined subclasses of Parser 
and TreeParser, there seems to be no way in that code that  can get to the 
delegates without knowing their names.  What I'd like for setErrorReporter() is 
something like this (call my defined Parser subclass MyParser):

  public void setErrorReporter(ErrorReporter errorReporter) {
    this.errorReporter = errorReporter;
    for (MyParser delegate : getDelegates()) {
      delegate.setErrorReporter(errorReporter);
    }
  }

First, is there any way to do what I'm trying to do here?  Second, if there's 
not, is there a good workaround (I have a feeling that I might have to change 
ANTLR's processing of imports to generate that getDelegates() method)?

Any help appreciated

  .bill

List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: 
http://www.antlr.org/mailman/options/antlr-interest/your-email-address

-- 
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en.

Reply via email to