diff options
Diffstat (limited to 'deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/CPPUtils.h')
-rw-r--r-- | deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/CPPUtils.h | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/CPPUtils.h b/deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/CPPUtils.h deleted file mode 100644 index 0320baf6ba..0000000000 --- a/deps/v8/third_party/antlr4/runtime/Cpp/runtime/src/support/CPPUtils.h +++ /dev/null @@ -1,87 +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. - */ - -#pragma once - -#include "antlr4-common.h" - -namespace antlrcpp { - -std::string join(std::vector<std::string> strings, - const std::string& separator); -std::map<std::string, size_t> toMap(const std::vector<std::string>& keys); -std::string escapeWhitespace(std::string str, bool escapeSpaces); -std::string toHexString(const int t); -std::string arrayToString(const std::vector<std::string>& data); -std::string replaceString(const std::string& s, const std::string& from, - const std::string& to); -std::vector<std::string> split(const std::string& s, const std::string& sep, - int count); -std::string indent(const std::string& s, const std::string& indentation, - bool includingFirst = true); - -// Using RAII + a lambda to implement a "finally" replacement. -struct FinalAction { - FinalAction(std::function<void()> f) : _cleanUp{f} {} - FinalAction(FinalAction&& other) - : _cleanUp(std::move(other._cleanUp)), _enabled(other._enabled) { - other._enabled = - false; // Don't trigger the lambda after ownership has moved. - } - ~FinalAction() { - if (_enabled) _cleanUp(); - } - - void disable() { _enabled = false; } - - private: - std::function<void()> _cleanUp; - bool _enabled{true}; -}; - -ANTLR4CPP_PUBLIC FinalAction finally(std::function<void()> f); - -// Convenience functions to avoid lengthy dynamic_cast() != nullptr checks in -// many places. -template <typename T1, typename T2> -inline bool is(T2* obj) { // For pointer types. - return dynamic_cast<typename std::add_const<T1>::type>(obj) != nullptr; -} - -template <typename T1, typename T2> -inline bool is(Ref<T2> const& obj) { // For shared pointers. - return dynamic_cast<T1*>(obj.get()) != nullptr; -} - -template <typename T> -std::string toString(const T& o) { - std::stringstream ss; - // typeid gives the mangled class name, but that's all what's possible - // in a portable way. - ss << typeid(o).name() << "@" << std::hex << reinterpret_cast<uintptr_t>(&o); - return ss.str(); -} - -// Get the error text from an exception pointer or the current exception. -std::string what(std::exception_ptr eptr = std::current_exception()); - -class SingleWriteMultipleReadLock { - public: - void readLock(); - void readUnlock(); - void writeLock(); - void writeUnlock(); - - private: - std::condition_variable _readerGate; - std::condition_variable _writerGate; - - std::mutex _mutex; - size_t _activeReaders = 0; - size_t _waitingWriters = 0; - size_t _activeWriters = 0; -}; - -} // namespace antlrcpp |