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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2008 the V8 project authors. All rights reserved. 1 // Copyright 2008 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 12 matching lines...) Expand all
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 27
28 #ifndef V8_REGEXP_MACRO_ASSEMBLER_RE2K_H_ 28 #ifndef V8_REGEXP_MACRO_ASSEMBLER_RE2K_H_
29 #define V8_REGEXP_MACRO_ASSEMBLER_RE2K_H_ 29 #define V8_REGEXP_MACRO_ASSEMBLER_RE2K_H_
30 30
31 namespace v8 { namespace internal { 31 namespace v8 { namespace internal {
32 32
33
34 class RegExpMacroAssemblerRe2k: public RegExpMacroAssembler {
35 public:
36 explicit RegExpMacroAssemblerRe2k(Re2kAssembler* assembler)
37 : assembler_(assembler) {
38 }
39 virtual ~RegExpMacroAssemblerRe2k();
40 virtual void Bind(Label* label);
41 virtual void EmitOrLink(Label* label);
42 virtual void AdvanceCurrentPosition(int by); // Signed cp change.
43 virtual void PopCurrentPosition();
44 virtual void PushCurrentPosition();
45 virtual void Backtrack();
46 virtual void GoTo(Label* label);
47 virtual void PushBacktrack(Label* label);
48 virtual void Succeed();
49 virtual void Fail();
50 virtual void PopRegister(int register_index);
51 virtual void PushRegister(int register_index);
52 virtual void AdvanceRegister(int reg, int by); // r[reg] += by.
53 virtual void SetRegister(int register_index, int to);
54 virtual void WriteCurrentPositionToRegister(int reg);
55 virtual void CheckCharacterClass(
56 RegExpCharacterClass* cclass,
57 int cp_offset,
58 Label* on_failure);
59 virtual void CheckCharacters(
60 Vector<const uc16> str,
61 int cp_offset,
62 Label* on_failure);
63 virtual void CheckCurrentPosition(
64 int register_index,
65 Label* on_equal);
66 virtual void CheckBitmap(uc16 start, Label* bitmap, Label* on_zero);
67 virtual void DispatchHalfNibbleMap(uc16 start,
68 Label* half_nibble_map,
69 const Vector<Label*>& destinations);
70 virtual void DispatchByteMap(uc16 start,
71 Label* byte_map,
72 const Vector<Label*>& destinations);
73 virtual void DispatchHighByteMap(byte start,
74 Label* byte_map,
75 const Vector<Label*>& destinations);
76 virtual void IfRegisterLT(int register_index, int comparand, Label* if_lt);
77 virtual void IfRegisterGE(int register_index, int comparand, Label* if_ge);
78
79 virtual Re2kImplementation Implementation();
80 virtual Handle<Object> GetCode();
81 private:
82 Re2kAssembler* assembler_;
83 };
84
33 } } // namespace v8::internal 85 } } // namespace v8::internal
34 86
35 #endif // V8_REGEXP_MACRO_ASSEMBLER_RE2K_H_ 87 #endif // V8_REGEXP_MACRO_ASSEMBLER_RE2K_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698