aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/interface/Exceptions.h
diff options
context:
space:
mode:
Diffstat (limited to 'libsolidity/interface/Exceptions.h')
-rw-r--r--libsolidity/interface/Exceptions.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/libsolidity/interface/Exceptions.h b/libsolidity/interface/Exceptions.h
index 81716c41..6f38cba2 100644
--- a/libsolidity/interface/Exceptions.h
+++ b/libsolidity/interface/Exceptions.h
@@ -23,6 +23,7 @@
#pragma once
#include <string>
+#include <regex>
#include <utility>
#include <libdevcore/Exceptions.h>
#include <libevmasm/SourceLocation.h>
@@ -57,6 +58,14 @@ public:
Type type() const { return m_type; }
std::string const& typeName() const { return m_typeName; }
+ template <typename T>
+ bool regex_search(T&& _reg) const
+ {
+ if (std::string const* str = boost::get_error_info<errinfo_comment>(*this))
+ return std::regex_search(*str, std::regex(std::forward<T>(_reg)));
+ else
+ return false;
+ }
/// helper functions
static Error const* containsErrorOfType(ErrorList const& _list, Error::Type _type)