Antlr-Fehler- / Ausnahmebehandlung

Nachdem ich online recherchiert hatte, stellte ich fest, dass dies der Weg wäre, um die Ausnahmen zu erfassen und meine eigenen Fehlermeldungen auszugeben. Aus irgendeinem Grund kann ich die Fehler immer noch nicht erkennen. Unten finden Sie den Code für eine Klasse, die die Standardfehlerbehandlung von antlrs überschreibt.

Ich möchte nur die Ausnahme von antlr abfangen und auf dem Bildschirm ausgeben, dass die Syntax in einer Java-GUI falsch ist.

public class ExceptionErrorStrategy extends DefaultErrorStrategy {

@Override
public void recover(Parser recognizer, RecognitionException e) {
    throw e;
}

@Override
public void reportInputMismatch(Parser recognizer, InputMismatchException e) throws RecognitionException {
    String msg = "Input is mismatched " + getTokenErrorDisplay(e.getOffendingToken());
    msg += " expecting: "+e.getExpectedTokens().toString(recognizer.getTokenNames());
    RecognitionException ex = new RecognitionException(msg, recognizer, recognizer.getInputStream(), recognizer.getContext());
    ex.initCause(e);
    throw ex;
}

@Override
public void reportMissingToken(Parser recognizer) {
    beginErrorCondition(recognizer);
    Token t = recognizer.getCurrentToken();
    IntervalSet expecting = getExpectedTokens(recognizer);
    String msg = "Missing "+expecting.toString(recognizer.getTokenNames()) + " at " + getTokenErrorDisplay(t);
    throw new RecognitionException(msg, recognizer, recognizer.getInputStream(), recognizer.getContext());
}
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage