Index: src/jsregexp.h |
=================================================================== |
--- src/jsregexp.h (revision 738) |
+++ src/jsregexp.h (working copy) |
@@ -97,13 +97,13 @@ |
static void NewSpaceCollectionPrologue(); |
static void OldSpaceCollectionPrologue(); |
- private: |
// Converts a source string to a 16 bit flat string. The string |
// will be either sequential or it will be a SlicedString backed |
// by a flat string. |
static Handle<String> StringToTwoByte(Handle<String> pattern); |
static Handle<String> CachedStringToTwoByte(Handle<String> pattern); |
+ private: |
static String* last_ascii_string_; |
static String* two_byte_cached_string_; |
@@ -246,7 +246,7 @@ |
// exposing the node. |
class Locator { |
public: |
- Locator(Node* node) : node_(node) { } |
+ explicit Locator(Node* node) : node_(node) { } |
Locator() : node_(NULL) { } |
const Key& key() { return node_->key_; } |
Value& value() { return node_->value_; } |
@@ -362,6 +362,22 @@ |
}; |
+class RegExpCompiler; |
+ |
+ |
+class RegExpNode: public ZoneObject { |
+ public: |
+ virtual ~RegExpNode() { } |
+ virtual void Accept(NodeVisitor* visitor) = 0; |
+ // Generates a goto to this node or actually generates the code at this point. |
+ void GoTo(RegExpCompiler* compiler); |
+ void EmitAddress(RegExpCompiler* compiler); |
+ virtual void Emit(RegExpCompiler* compiler) = 0; |
+ private: |
+ Label label; |
+}; |
+ |
+ |
} } // namespace v8::internal |
#endif // V8_JSREGEXP_H_ |