Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1745)

Unified Diff: src/regexp-macro-assembler-re2k.h

Issue 10830: * We want to be able to find atoms and character classes without advancing th... (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/regexp2000/
Patch Set: Created 12 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/regexp-macro-assembler-re2k.h
===================================================================
--- src/regexp-macro-assembler-re2k.h (revision 738)
+++ src/regexp-macro-assembler-re2k.h (working copy)
@@ -30,6 +30,58 @@
namespace v8 { namespace internal {
+
+class RegExpMacroAssemblerRe2k: public RegExpMacroAssembler {
+ public:
+ explicit RegExpMacroAssemblerRe2k(Re2kAssembler* assembler)
+ : assembler_(assembler) {
+ }
+ virtual ~RegExpMacroAssemblerRe2k();
+ virtual void Bind(Label* label);
+ virtual void EmitOrLink(Label* label);
+ virtual void AdvanceCurrentPosition(int by); // Signed cp change.
+ virtual void PopCurrentPosition();
+ virtual void PushCurrentPosition();
+ virtual void Backtrack();
+ virtual void GoTo(Label* label);
+ virtual void PushBacktrack(Label* label);
+ virtual void Succeed();
+ virtual void Fail();
+ virtual void PopRegister(int register_index);
+ virtual void PushRegister(int register_index);
+ virtual void AdvanceRegister(int reg, int by); // r[reg] += by.
+ virtual void SetRegister(int register_index, int to);
+ virtual void WriteCurrentPositionToRegister(int reg);
+ virtual void CheckCharacterClass(
+ RegExpCharacterClass* cclass,
+ int cp_offset,
+ Label* on_failure);
+ virtual void CheckCharacters(
+ Vector<const uc16> str,
+ int cp_offset,
+ Label* on_failure);
+ virtual void CheckCurrentPosition(
+ int register_index,
+ Label* on_equal);
+ virtual void CheckBitmap(uc16 start, Label* bitmap, Label* on_zero);
+ virtual void DispatchHalfNibbleMap(uc16 start,
+ Label* half_nibble_map,
+ const Vector<Label*>& destinations);
+ virtual void DispatchByteMap(uc16 start,
+ Label* byte_map,
+ const Vector<Label*>& destinations);
+ virtual void DispatchHighByteMap(byte start,
+ Label* byte_map,
+ const Vector<Label*>& destinations);
+ virtual void IfRegisterLT(int register_index, int comparand, Label* if_lt);
+ virtual void IfRegisterGE(int register_index, int comparand, Label* if_ge);
+
+ virtual Re2kImplementation Implementation();
+ virtual Handle<Object> GetCode();
+ private:
+ Re2kAssembler* assembler_;
+};
+
} } // namespace v8::internal
#endif // V8_REGEXP_MACRO_ASSEMBLER_RE2K_H_

Powered by Google App Engine
This is Rietveld 408576698