diff options
| author | robot-piglet <[email protected]> | 2023-12-04 15:32:14 +0300 |
|---|---|---|
| committer | robot-piglet <[email protected]> | 2023-12-05 01:22:50 +0300 |
| commit | c21ed9eedf73010bc81342518177dfdfb0d56bd7 (patch) | |
| tree | 72f8fde4463080cfe5a38eb0babc051cfe32c51e /contrib/libs/antlr4_cpp_runtime/src/Recognizer.cpp | |
| parent | ec1311bf2e8cc231723b8b5e484ca576663a1309 (diff) | |
Intermediate changes
Diffstat (limited to 'contrib/libs/antlr4_cpp_runtime/src/Recognizer.cpp')
| -rw-r--r-- | contrib/libs/antlr4_cpp_runtime/src/Recognizer.cpp | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/contrib/libs/antlr4_cpp_runtime/src/Recognizer.cpp b/contrib/libs/antlr4_cpp_runtime/src/Recognizer.cpp deleted file mode 100644 index c8a183324c2..00000000000 --- a/contrib/libs/antlr4_cpp_runtime/src/Recognizer.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/* 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 "ConsoleErrorListener.h" -#include "RecognitionException.h" -#include "support/CPPUtils.h" -#include "Token.h" -#include "atn/ATN.h" -#include "atn/ATNSimulator.h" -#include "support/CPPUtils.h" -#include "support/StringUtils.h" - -#include "Vocabulary.h" - -#include "Recognizer.h" - -using namespace antlr4; -using namespace antlr4::atn; -using namespace antlr4::internal; - -std::map<const dfa::Vocabulary*, std::map<std::string_view, size_t>> Recognizer::_tokenTypeMapCache; -std::map<std::vector<std::string>, std::map<std::string, size_t>> Recognizer::_ruleIndexMapCache; - -Recognizer::Recognizer() { - InitializeInstanceFields(); - _proxListener.addErrorListener(&ConsoleErrorListener::INSTANCE); -} - -Recognizer::~Recognizer() { -} - -std::map<std::string_view, size_t> Recognizer::getTokenTypeMap() { - const dfa::Vocabulary& vocabulary = getVocabulary(); - - UniqueLock<Mutex> lck(_mutex); - std::map<std::string_view, size_t> result; - auto iterator = _tokenTypeMapCache.find(&vocabulary); - if (iterator != _tokenTypeMapCache.end()) { - result = iterator->second; - } else { - for (size_t i = 0; i <= getATN().maxTokenType; ++i) { - std::string_view literalName = vocabulary.getLiteralName(i); - if (!literalName.empty()) { - result[literalName] = i; - } - - std::string_view symbolicName = vocabulary.getSymbolicName(i); - if (!symbolicName.empty()) { - result[symbolicName] = i; - } - } - result["EOF"] = EOF; - _tokenTypeMapCache[&vocabulary] = result; - } - - return result; -} - -std::map<std::string, size_t> Recognizer::getRuleIndexMap() { - const std::vector<std::string>& ruleNames = getRuleNames(); - if (ruleNames.empty()) { - throw "The current recognizer does not provide a list of rule names."; - } - - UniqueLock<Mutex> lck(_mutex); - std::map<std::string, size_t> result; - auto iterator = _ruleIndexMapCache.find(ruleNames); - if (iterator != _ruleIndexMapCache.end()) { - result = iterator->second; - } else { - result = antlrcpp::toMap(ruleNames); - _ruleIndexMapCache[ruleNames] = result; - } - return result; -} - -size_t Recognizer::getTokenType(std::string_view tokenName) { - const std::map<std::string_view, size_t> &map = getTokenTypeMap(); - auto iterator = map.find(tokenName); - if (iterator == map.end()) - return Token::INVALID_TYPE; - - return iterator->second; -} - -void Recognizer::setInterpreter(atn::ATNSimulator *interpreter) { - // Usually the interpreter is set by the descendant (lexer or parser (simulator), but can also be exchanged - // by the profiling ATN simulator. - delete _interpreter; - _interpreter = interpreter; -} - -std::string Recognizer::getErrorHeader(RecognitionException *e) { - // We're having issues with cross header dependencies, these two classes will need to be - // rewritten to remove that. - size_t line = e->getOffendingToken()->getLine(); - size_t charPositionInLine = e->getOffendingToken()->getCharPositionInLine(); - return std::string("line ") + std::to_string(line) + ":" + std::to_string(charPositionInLine); - -} - -std::string Recognizer::getTokenErrorDisplay(Token *t) { - if (t == nullptr) { - return "<no Token>"; - } - std::string s = t->getText(); - if (s == "") { - if (t->getType() == EOF) { - s = "<EOF>"; - } else { - s = std::string("<") + std::to_string(t->getType()) + std::string(">"); - } - } - - std::string result; - result.reserve(s.size() + 2); - result.push_back('\''); - antlrcpp::escapeWhitespace(result, s); - result.push_back('\''); - result.shrink_to_fit(); - return result; -} - -void Recognizer::addErrorListener(ANTLRErrorListener *listener) { - _proxListener.addErrorListener(listener); -} - -void Recognizer::removeErrorListener(ANTLRErrorListener *listener) { - _proxListener.removeErrorListener(listener); -} - -void Recognizer::removeErrorListeners() { - _proxListener.removeErrorListeners(); -} - -ProxyErrorListener& Recognizer::getErrorListenerDispatch() { - return _proxListener; -} - -bool Recognizer::sempred(RuleContext * /*localctx*/, size_t /*ruleIndex*/, size_t /*actionIndex*/) { - return true; -} - -bool Recognizer::precpred(RuleContext * /*localctx*/, int /*precedence*/) { - return true; -} - -void Recognizer::action(RuleContext * /*localctx*/, size_t /*ruleIndex*/, size_t /*actionIndex*/) { -} - -void Recognizer::InitializeInstanceFields() { - _stateNumber = ATNState::INVALID_STATE_NUMBER; - _interpreter = nullptr; -} - |
