diff options
| author | Patrick Schönberger | 2021-08-14 14:56:12 +0200 |
|---|---|---|
| committer | Patrick Schönberger | 2021-08-14 14:56:12 +0200 |
| commit | c6ad2948bb98d42f8e0883ef82cd14cd2d5eda60 (patch) | |
| tree | 9e83d6d8f61e56f5d3425b8709314d6bdb9315a9 /antlr4-cpp-runtime-4.9.2-source/runtime/src/NoViableAltException.cpp | |
| parent | 9f94b672a5dc32da5ad01742bd4e976315a30d9c (diff) | |
| download | toc-main.tar.gz toc-main.zip | |
Diffstat (limited to 'antlr4-cpp-runtime-4.9.2-source/runtime/src/NoViableAltException.cpp')
| -rw-r--r-- | antlr4-cpp-runtime-4.9.2-source/runtime/src/NoViableAltException.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/antlr4-cpp-runtime-4.9.2-source/runtime/src/NoViableAltException.cpp b/antlr4-cpp-runtime-4.9.2-source/runtime/src/NoViableAltException.cpp new file mode 100644 index 0000000..273c208 --- /dev/null +++ b/antlr4-cpp-runtime-4.9.2-source/runtime/src/NoViableAltException.cpp @@ -0,0 +1,46 @@ +/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. + * Use of this file is governed by the BSD 3-clause license that + * can be found in the LICENSE.txt file in the project root. + */ + +#include "Parser.h" + +#include "NoViableAltException.h" + +using namespace antlr4; + +namespace { + +// Create a normal shared pointer if the configurations are to be deleted. If not, then +// the shared pointer is created with a deleter that does nothing. +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(); +} |
