Index: src/regexp/regexp-parser.h |
diff --git a/src/regexp/regexp-parser.h b/src/regexp/regexp-parser.h |
index dc0d943f86eeb9860d4819c503b4cf3d3b1e2d6d..af9b765fba16b0de0f00d814da565a8ebd993ec1 100644 |
--- a/src/regexp/regexp-parser.h |
+++ b/src/regexp/regexp-parser.h |
@@ -99,15 +99,13 @@ |
// Accumulates RegExp atoms and assertions into lists of terms and alternatives. |
class RegExpBuilder : public ZoneObject { |
public: |
- RegExpBuilder(Zone* zone, JSRegExp::Flags flags); |
+ explicit RegExpBuilder(Zone* zone); |
void AddCharacter(uc16 character); |
void AddUnicodeCharacter(uc32 character); |
// "Adds" an empty expression. Does nothing except consume a |
// following quantifier |
void AddEmpty(); |
- void AddCharacterClass(RegExpCharacterClass* cc); |
void AddAtom(RegExpTree* tree); |
- void AddTerm(RegExpTree* tree); |
void AddAssertion(RegExpTree* tree); |
void NewAlternative(); // '|' |
void AddQuantifierToAtom(int min, int max, |
@@ -115,21 +113,14 @@ |
RegExpTree* ToRegExp(); |
private: |
- static const uc16 kNoPendingSurrogate = 0; |
- void AddLeadSurrogate(uc16 lead_surrogate); |
- void AddTrailSurrogate(uc16 trail_surrogate); |
- void FlushPendingSurrogate(); |
void FlushCharacters(); |
void FlushText(); |
void FlushTerms(); |
Zone* zone() const { return zone_; } |
- bool unicode() const { return (flags_ & JSRegExp::kUnicode) != 0; } |
Zone* zone_; |
bool pending_empty_; |
- JSRegExp::Flags flags_; |
ZoneList<uc16>* characters_; |
- uc16 pending_surrogate_; |
BufferedZoneList<RegExpTree, 2> terms_; |
BufferedZoneList<RegExpTree, 2> text_; |
BufferedZoneList<RegExpTree, 2> alternatives_; |
@@ -144,11 +135,12 @@ |
class RegExpParser BASE_EMBEDDED { |
public: |
- RegExpParser(FlatStringReader* in, Handle<String>* error, |
- JSRegExp::Flags flags, Isolate* isolate, Zone* zone); |
+ RegExpParser(FlatStringReader* in, Handle<String>* error, bool multiline_mode, |
+ bool unicode, Isolate* isolate, Zone* zone); |
static bool ParseRegExp(Isolate* isolate, Zone* zone, FlatStringReader* input, |
- JSRegExp::Flags flags, RegExpCompileData* result); |
+ bool multiline, bool unicode, |
+ RegExpCompileData* result); |
RegExpTree* ParsePattern(); |
RegExpTree* ParseDisjunction(); |
@@ -191,8 +183,6 @@ |
int captures_started() { return captures_started_; } |
int position() { return next_pos_ - 1; } |
bool failed() { return failed_; } |
- bool unicode() const { return (flags_ & JSRegExp::kUnicode) != 0; } |
- bool multiline() const { return (flags_ & JSRegExp::kMultiline) != 0; } |
static bool IsSyntaxCharacter(uc32 c); |
@@ -213,10 +203,9 @@ |
RegExpParserState(RegExpParserState* previous_state, |
SubexpressionType group_type, |
RegExpLookaround::Type lookaround_type, |
- int disjunction_capture_index, JSRegExp::Flags flags, |
- Zone* zone) |
+ int disjunction_capture_index, Zone* zone) |
: previous_state_(previous_state), |
- builder_(new (zone) RegExpBuilder(zone, flags)), |
+ builder_(new (zone) RegExpBuilder(zone)), |
group_type_(group_type), |
lookaround_type_(lookaround_type), |
disjunction_capture_index_(disjunction_capture_index) {} |
@@ -260,8 +249,6 @@ |
bool has_more() { return has_more_; } |
bool has_next() { return next_pos_ < in()->length(); } |
uc32 Next(); |
- template <bool update_position> |
- uc32 ReadNext(); |
FlatStringReader* in() { return in_; } |
void ScanForCaptures(); |
@@ -271,12 +258,13 @@ |
ZoneList<RegExpCapture*>* captures_; |
FlatStringReader* in_; |
uc32 current_; |
- JSRegExp::Flags flags_; |
int next_pos_; |
int captures_started_; |
// The capture count is only valid after we have scanned for captures. |
int capture_count_; |
bool has_more_; |
+ bool multiline_; |
+ bool unicode_; |
bool simple_; |
bool contains_anchor_; |
bool is_scanned_for_captures_; |