| // Copyright 2016 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef V8_INSPECTOR_V8_REGEX_H_ |
| #define V8_INSPECTOR_V8_REGEX_H_ |
| |
| #include "src/base/macros.h" |
| #include "src/inspector/string-16.h" |
| |
| #include "include/v8.h" |
| |
| namespace v8_inspector { |
| |
| class V8InspectorImpl; |
| |
| enum MultilineMode { MultilineDisabled, MultilineEnabled }; |
| |
| class V8Regex { |
| public: |
| V8Regex(V8InspectorImpl*, const String16&, bool caseSensitive, |
| bool multiline = false); |
| int match(const String16&, int startFrom = 0, |
| int* matchLength = nullptr) const; |
| bool isValid() const { return !m_regex.IsEmpty(); } |
| const String16& errorMessage() const { return m_errorMessage; } |
| |
| private: |
| V8InspectorImpl* m_inspector; |
| v8::Global<v8::RegExp> m_regex; |
| String16 m_errorMessage; |
| |
| DISALLOW_COPY_AND_ASSIGN(V8Regex); |
| }; |
| |
| } // namespace v8_inspector |
| |
| #endif // V8_INSPECTOR_V8_REGEX_H_ |