#include "Parser.h"
#include "NoViableAltException.h"
using namespace antlr4;
namespace {
Ref<atn::ATNConfigSet> buildConfigsRef(atn::ATNConfigSet *configs, bool deleteConfigs) {
if (deleteConfigs) {
return Ref<atn::ATNConfigSet>(configs);
} else {
return Ref<atn::ATNConfigSet>(configs, [](atn::ATNConfigSet *){});
}
}
}
NoViableAltException::NoViableAltException(Parser *recognizer)
: NoViableAltException(recognizer, recognizer->getTokenStream(), recognizer->getCurrentToken(),
recognizer->getCurrentToken(), nullptr, recognizer->getContext(), false) {
}
NoViableAltException::NoViableAltException(Parser *recognizer, TokenStream *input,Token *startToken,
Token *offendingToken, atn::ATNConfigSet *deadEndConfigs, ParserRuleContext *ctx, bool deleteConfigs)
: RecognitionException("No viable alternative", recognizer, input, ctx, offendingToken),
_deadEndConfigs(buildConfigsRef(deadEndConfigs, deleteConfigs)), _startToken(startToken) {
}
NoViableAltException::~NoViableAltException() {
}
Token* NoViableAltException::getStartToken() const {
return _startToken;
}
atn::ATNConfigSet* NoViableAltException::getDeadEndConfigs() const {
return _deadEndConfigs.get();
}