// Copyright 2012 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_REGEXP_REGEXP_H_ #define V8_REGEXP_REGEXP_H_ #include "src/common/assert-scope.h" #include "src/handles/handles.h" #include "src/regexp/regexp-error.h" #include "src/regexp/regexp-flags.h" #include "src/zone/zone-containers.h" namespace v8 { namespace internal { class JSRegExp; class RegExpCapture; class RegExpData; class IrRegExpData; class AtomRegExpData; class RegExpMatchInfo; class RegExpNode; class RegExpTree; enum class RegExpCompilationTarget : int { … }; // TODO(jgruber): Do not expose in regexp.h. // TODO(jgruber): Consider splitting between ParseData and CompileData. struct RegExpCompileData { … }; class RegExp final : public AllStatic { … }; // Uses a special global mode of irregexp-generated code to perform a global // search and return multiple results at once. As such, this is essentially an // iterator over multiple results (retrieved batch-wise in advance). class RegExpGlobalCache final { … }; // Caches results for specific regexp queries on the isolate. At the time of // writing, this is used during global calls to RegExp.prototype.exec and // @@split. class RegExpResultsCache final : public AllStatic { … }; } // namespace internal } // namespace v8 #endif // V8_REGEXP_REGEXP_H_