void DefaultErrorStrategy::reportNoViableAlternative(Parser *recognizer, const NoViableAltException &e) { TokenStream *tokens = recognizer->getTokenStream(); std::string input; if (tokens != nullptr) { if (e.getStartToken()->getType() == Token::EOF) { input = "<EOF>"; } else { input = tokens->getText(e.getStartToken(), e.getOffendingToken()); } } else { input = "<unknown input>"; } std::string msg = "no viable alternative at input " + escapeWSAndQuote(input); recognizer->notifyErrorListeners(e.getOffendingToken(), msg, std::make_exception_ptr(e)); }