Example usage for org.antlr.v4.runtime Parser notifyErrorListeners

List of usage examples for org.antlr.v4.runtime Parser notifyErrorListeners

Introduction

In this page you can find the example usage for org.antlr.v4.runtime Parser notifyErrorListeners.

Prototype

public void notifyErrorListeners(Token offendingToken, String msg, RecognitionException e) 

Source Link

Usage

From source file:com.eprosima.idl.parser.strategy.DefaultErrorStrategy.java

License:Apache License

@Override
public void reportError(Parser recognizer, RecognitionException e) {
    if (inErrorRecoveryMode(recognizer)) {
        // System.err.print("[SPURIOUS] ");
        return; // don't report spurious errors
    }//from   w w w.j av  a  2 s . c o m
    beginErrorCondition(recognizer);
    if (e instanceof NoViableAltException) {
        reportNoViableAlternative(recognizer, (NoViableAltException) e);
    } else if (e instanceof InputMismatchException) {
        reportInputMismatch(recognizer, (InputMismatchException) e);
    } else if (e instanceof FailedPredicateException) {
        reportFailedPredicate(recognizer, (FailedPredicateException) e);
    } else if (e instanceof ParseException) {
        if (e.getOffendingToken() != null) {
            String message = ColorMessage.bold(getTokenErrorDisplay(e.getOffendingToken()) + " ")
                    + e.getMessage();
            recognizer.notifyErrorListeners(e.getOffendingToken(), message, e);
        } else
            recognizer.notifyErrorListeners(e.getMessage());
    } else {
        System.err.println("unknown recognition error type: " + e.getClass().getName());
        recognizer.notifyErrorListeners(e.getOffendingToken(), e.getMessage(), e);
    }
}

From source file:com.eprosima.idl.parser.strategy.DefaultErrorStrategy.java

License:Apache License

@Override
protected void reportUnwantedToken(@NotNull Parser recognizer) {
    if (inErrorRecoveryMode(recognizer)) {
        return;//w  ww  .  ja  va2 s .c  o m
    }

    beginErrorCondition(recognizer);
    Token t = recognizer.getCurrentToken();
    String tokenName = getTokenErrorDisplay(t);
    String msg = "Unexpected input " + ColorMessage.bold(tokenName);
    recognizer.notifyErrorListeners(t, msg, null);
}

From source file:com.github.jknack.handlebars.internal.HbsErrorStrategy.java

License:Apache License

@Override
public void reportNoViableAlternative(final Parser recognizer, final NoViableAltException e) {
    HbsParser parser = (HbsParser) recognizer;
    TokenStream tokens = parser.getTokenStream();
    HbsLexer lexer = (HbsLexer) tokens.getTokenSource();
    String msg = new ErrorStrategyVisitor(lexer.start, lexer.end).visit(e.getCtx());
    if (msg != null) {
        recognizer.notifyErrorListeners(e.getOffendingToken(), msg, e);
    } else {/*from ww w . j  a  va2s . com*/
        super.reportNoViableAlternative(recognizer, e);
    }
}

From source file:com.github.jknack.handlebars.internal.HbsErrorStrategy.java

License:Apache License

@Override
public void reportMissingToken(final Parser recognizer) {
    if (errorRecoveryMode) {
        return;//from w  w  w .j a v a  2 s .  c  o  m
    }
    Token offendingToken = recognizer.getCurrentToken();
    IntervalSet expecting = getExpectedTokens(recognizer);
    String msg = expecting.toString(recognizer.getTokenNames());

    recognizer.notifyErrorListeners(offendingToken, msg, null);
}

From source file:com.github.jknack.handlebars.internal.HbsErrorStrategy.java

License:Apache License

@Override
public void reportInputMismatch(final Parser recognizer, final InputMismatchException e) {
    String[] displayNames = displayNames(recognizer);
    String msg = e.getExpectedTokens().toString(displayNames);
    recognizer.notifyErrorListeners(e.getOffendingToken(), msg, e);
}

From source file:com.globalforge.infix.FixRulesErrorStrategy.java

License:Open Source License

/**
 * @see DefaultErrorStrategy#reportNoViableAlternative
 *//*from   w  w w . j  a v  a  2  s.c  o  m*/
@Override
protected void reportNoViableAlternative(Parser parser, NoViableAltException e) {
    String msg = "can't choose between alternatives"; // nonstandard msg
    parser.notifyErrorListeners(e.getOffendingToken(), msg, e);
}

From source file:com.huawei.streaming.cql.semanticanalyzer.parser.CQLErrorStrategy.java

License:Apache License

/**
 * {@inheritDoc}/*from  w  ww  .j a  v  a2s.co  m*/
 */
@Override
public void reportNoViableAlternative(@NotNull Parser recognizer, @NotNull NoViableAltException e) {
    TokenStream tokens = recognizer.getInputStream();
    String input;
    if (tokens instanceof TokenStream) {
        if (e.getStartToken().getType() == Token.EOF)
            input = "<EOF>";
        else
            input = getText(tokens, e.getStartToken(), e.getOffendingToken());
    } else {
        input = "<unknown input>";
    }
    String msg = "no viable alternative at input " + escapeWSAndQuote(input);
    recognizer.notifyErrorListeners(e.getOffendingToken(), msg, e);
}

From source file:com.sample.JavaErrorStrategy.java

License:BSD License

/**
 * This is called by {@link #reportError} when the exception is a
 * {@link NoViableAltException}./*from   w w  w  .  ja  v a  2  s .  c  om*/
 *
 * @see #reportError
 *
 * @param recognizer
 *            the parser instance
 * @param e
 *            the recognition exception
 */
protected void reportNoViableAlternative(@NotNull Parser recognizer, @NotNull NoViableAltException e) {
    TokenStream tokens = recognizer.getInputStream();
    String input;
    if (tokens != null) {
        if (e.getStartToken().getType() == Token.EOF)
            input = "<EOF>";
        else
            input = tokens.getText(e.getStartToken(), e.getOffendingToken());
    } else {
        input = "<unknown input>";
    }
    String msg = "no viable alternative at input " + escapeWSAndQuote(input);
    recognizer.notifyErrorListeners(e.getOffendingToken(), msg, e);
}

From source file:com.sample.JavaErrorStrategy.java

License:BSD License

/**
 * This is called by {@link #reportError} when the exception is an
 * {@link InputMismatchException}.//from   ww w.java  2 s.c om
 *
 * @see #reportError
 *
 * @param recognizer
 *            the parser instance
 * @param e
 *            the recognition exception
 */
protected void reportInputMismatch(@NotNull Parser recognizer, @NotNull InputMismatchException e) {
    String msg = "mismatched input " + getTokenErrorDisplay(e.getOffendingToken()) + " expecting "
            + e.getExpectedTokens().toString(recognizer.getTokenNames());
    recognizer.notifyErrorListeners(e.getOffendingToken(), msg, e);
}

From source file:com.sample.JavaErrorStrategy.java

License:BSD License

/**
 * This is called by {@link #reportError} when the exception is a
 * {@link FailedPredicateException}.//from w ww . ja  v a 2 s  . c  o m
 *
 * @see #reportError
 *
 * @param recognizer
 *            the parser instance
 * @param e
 *            the recognition exception
 */
protected void reportFailedPredicate(@NotNull Parser recognizer, @NotNull FailedPredicateException e) {
    String ruleName = recognizer.getRuleNames()[recognizer.getContext().getRuleIndex()];
    String msg = "rule " + ruleName + " " + e.getMessage();
    recognizer.notifyErrorListeners(e.getOffendingToken(), msg, e);
}