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

Side by Side Diff: src/jsregexp.h

Issue 430503007: Rename ASSERT* to DCHECK*. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE and fixes Created 6 years, 4 months 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
« no previous file with comments | « src/json-stringifier.h ('k') | src/jsregexp.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_JSREGEXP_H_ 5 #ifndef V8_JSREGEXP_H_
6 #define V8_JSREGEXP_H_ 6 #define V8_JSREGEXP_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/assembler.h" 9 #include "src/assembler.h"
10 #include "src/zone-inl.h" 10 #include "src/zone-inl.h"
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 kInsideBoth = 3 232 kInsideBoth = 3
233 }; 233 };
234 234
235 235
236 // Represents code units in the range from from_ to to_, both ends are 236 // Represents code units in the range from from_ to to_, both ends are
237 // inclusive. 237 // inclusive.
238 class CharacterRange { 238 class CharacterRange {
239 public: 239 public:
240 CharacterRange() : from_(0), to_(0) { } 240 CharacterRange() : from_(0), to_(0) { }
241 // For compatibility with the CHECK_OK macro 241 // For compatibility with the CHECK_OK macro
242 CharacterRange(void* null) { ASSERT_EQ(NULL, null); } //NOLINT 242 CharacterRange(void* null) { DCHECK_EQ(NULL, null); } //NOLINT
243 CharacterRange(uc16 from, uc16 to) : from_(from), to_(to) { } 243 CharacterRange(uc16 from, uc16 to) : from_(from), to_(to) { }
244 static void AddClassEscape(uc16 type, ZoneList<CharacterRange>* ranges, 244 static void AddClassEscape(uc16 type, ZoneList<CharacterRange>* ranges,
245 Zone* zone); 245 Zone* zone);
246 static Vector<const int> GetWordBounds(); 246 static Vector<const int> GetWordBounds();
247 static inline CharacterRange Singleton(uc16 value) { 247 static inline CharacterRange Singleton(uc16 value) {
248 return CharacterRange(value, value); 248 return CharacterRange(value, value);
249 } 249 }
250 static inline CharacterRange Range(uc16 from, uc16 to) { 250 static inline CharacterRange Range(uc16 from, uc16 to) {
251 ASSERT(from <= to); 251 DCHECK(from <= to);
252 return CharacterRange(from, to); 252 return CharacterRange(from, to);
253 } 253 }
254 static inline CharacterRange Everything() { 254 static inline CharacterRange Everything() {
255 return CharacterRange(0, 0xFFFF); 255 return CharacterRange(0, 0xFFFF);
256 } 256 }
257 bool Contains(uc16 i) { return from_ <= i && i <= to_; } 257 bool Contains(uc16 i) { return from_ <= i && i <= to_; }
258 uc16 from() const { return from_; } 258 uc16 from() const { return from_; }
259 void set_from(uc16 value) { from_ = value; } 259 void set_from(uc16 value) { from_ = value; }
260 uc16 to() const { return to_; } 260 uc16 to() const { return to_; }
261 void set_to(uc16 value) { to_ = value; } 261 void set_to(uc16 value) { to_ = value; }
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 418
419 int cp_offset() const { return cp_offset_; } 419 int cp_offset() const { return cp_offset_; }
420 void set_cp_offset(int cp_offset) { cp_offset_ = cp_offset; } 420 void set_cp_offset(int cp_offset) { cp_offset_ = cp_offset; }
421 int length() const; 421 int length() const;
422 422
423 TextType text_type() const { return text_type_; } 423 TextType text_type() const { return text_type_; }
424 424
425 RegExpTree* tree() const { return tree_; } 425 RegExpTree* tree() const { return tree_; }
426 426
427 RegExpAtom* atom() const { 427 RegExpAtom* atom() const {
428 ASSERT(text_type() == ATOM); 428 DCHECK(text_type() == ATOM);
429 return reinterpret_cast<RegExpAtom*>(tree()); 429 return reinterpret_cast<RegExpAtom*>(tree());
430 } 430 }
431 431
432 RegExpCharacterClass* char_class() const { 432 RegExpCharacterClass* char_class() const {
433 ASSERT(text_type() == CHAR_CLASS); 433 DCHECK(text_type() == CHAR_CLASS);
434 return reinterpret_cast<RegExpCharacterClass*>(tree()); 434 return reinterpret_cast<RegExpCharacterClass*>(tree());
435 } 435 }
436 436
437 private: 437 private:
438 TextElement(TextType text_type, RegExpTree* tree) 438 TextElement(TextType text_type, RegExpTree* tree)
439 : cp_offset_(-1), text_type_(text_type), tree_(tree) {} 439 : cp_offset_(-1), text_type_(text_type), tree_(tree) {}
440 440
441 int cp_offset_; 441 int cp_offset_;
442 TextType text_type_; 442 TextType text_type_;
443 RegExpTree* tree_; 443 RegExpTree* tree_;
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 void set_cannot_match() { cannot_match_ = true; } 534 void set_cannot_match() { cannot_match_ = true; }
535 struct Position { 535 struct Position {
536 Position() : mask(0), value(0), determines_perfectly(false) { } 536 Position() : mask(0), value(0), determines_perfectly(false) { }
537 uc16 mask; 537 uc16 mask;
538 uc16 value; 538 uc16 value;
539 bool determines_perfectly; 539 bool determines_perfectly;
540 }; 540 };
541 int characters() { return characters_; } 541 int characters() { return characters_; }
542 void set_characters(int characters) { characters_ = characters; } 542 void set_characters(int characters) { characters_ = characters; }
543 Position* positions(int index) { 543 Position* positions(int index) {
544 ASSERT(index >= 0); 544 DCHECK(index >= 0);
545 ASSERT(index < characters_); 545 DCHECK(index < characters_);
546 return positions_ + index; 546 return positions_ + index;
547 } 547 }
548 uint32_t mask() { return mask_; } 548 uint32_t mask() { return mask_; }
549 uint32_t value() { return value_; } 549 uint32_t value() { return value_; }
550 550
551 private: 551 private:
552 // How many characters do we have quick check information from. This is 552 // How many characters do we have quick check information from. This is
553 // the same for all branches of a choice node. 553 // the same for all branches of a choice node.
554 int characters_; 554 int characters_;
555 Position positions_[4]; 555 Position positions_[4];
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 bool not_at_start) { 621 bool not_at_start) {
622 UNREACHABLE(); 622 UNREACHABLE();
623 } 623 }
624 624
625 // If we know that the input is ASCII then there are some nodes that can 625 // If we know that the input is ASCII then there are some nodes that can
626 // never match. This method returns a node that can be substituted for 626 // never match. This method returns a node that can be substituted for
627 // itself, or NULL if the node can never match. 627 // itself, or NULL if the node can never match.
628 virtual RegExpNode* FilterASCII(int depth, bool ignore_case) { return this; } 628 virtual RegExpNode* FilterASCII(int depth, bool ignore_case) { return this; }
629 // Helper for FilterASCII. 629 // Helper for FilterASCII.
630 RegExpNode* replacement() { 630 RegExpNode* replacement() {
631 ASSERT(info()->replacement_calculated); 631 DCHECK(info()->replacement_calculated);
632 return replacement_; 632 return replacement_;
633 } 633 }
634 RegExpNode* set_replacement(RegExpNode* replacement) { 634 RegExpNode* set_replacement(RegExpNode* replacement) {
635 info()->replacement_calculated = true; 635 info()->replacement_calculated = true;
636 replacement_ = replacement; 636 replacement_ = replacement;
637 return replacement; // For convenience. 637 return replacement; // For convenience.
638 } 638 }
639 639
640 // We want to avoid recalculating the lookahead info, so we store it on the 640 // We want to avoid recalculating the lookahead info, so we store it on the
641 // node. Only info that is for this node is stored. We can tell that the 641 // node. Only info that is for this node is stored. We can tell that the
(...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after
1438 int flush_budget() { return flush_budget_; } 1438 int flush_budget() { return flush_budget_; }
1439 QuickCheckDetails* quick_check_performed() { return &quick_check_performed_; } 1439 QuickCheckDetails* quick_check_performed() { return &quick_check_performed_; }
1440 bool mentions_reg(int reg); 1440 bool mentions_reg(int reg);
1441 // Returns true if a deferred position store exists to the specified 1441 // Returns true if a deferred position store exists to the specified
1442 // register and stores the offset in the out-parameter. Otherwise 1442 // register and stores the offset in the out-parameter. Otherwise
1443 // returns false. 1443 // returns false.
1444 bool GetStoredPosition(int reg, int* cp_offset); 1444 bool GetStoredPosition(int reg, int* cp_offset);
1445 // These set methods and AdvanceCurrentPositionInTrace should be used only on 1445 // These set methods and AdvanceCurrentPositionInTrace should be used only on
1446 // new traces - the intention is that traces are immutable after creation. 1446 // new traces - the intention is that traces are immutable after creation.
1447 void add_action(DeferredAction* new_action) { 1447 void add_action(DeferredAction* new_action) {
1448 ASSERT(new_action->next_ == NULL); 1448 DCHECK(new_action->next_ == NULL);
1449 new_action->next_ = actions_; 1449 new_action->next_ = actions_;
1450 actions_ = new_action; 1450 actions_ = new_action;
1451 } 1451 }
1452 void set_backtrack(Label* backtrack) { backtrack_ = backtrack; } 1452 void set_backtrack(Label* backtrack) { backtrack_ = backtrack; }
1453 void set_stop_node(RegExpNode* node) { stop_node_ = node; } 1453 void set_stop_node(RegExpNode* node) { stop_node_ = node; }
1454 void set_loop_label(Label* label) { loop_label_ = label; } 1454 void set_loop_label(Label* label) { loop_label_ = label; }
1455 void set_characters_preloaded(int count) { characters_preloaded_ = count; } 1455 void set_characters_preloaded(int count) { characters_preloaded_ = count; }
1456 void set_bound_checked_up_to(int to) { bound_checked_up_to_ = to; } 1456 void set_bound_checked_up_to(int to) { bound_checked_up_to_ = to; }
1457 void set_flush_budget(int to) { flush_budget_ = to; } 1457 void set_flush_budget(int to) { flush_budget_ = to; }
1458 void set_quick_check_performed(QuickCheckDetails* d) { 1458 void set_quick_check_performed(QuickCheckDetails* d) {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1553 void EnsureAnalyzed(RegExpNode* node); 1553 void EnsureAnalyzed(RegExpNode* node);
1554 1554
1555 #define DECLARE_VISIT(Type) \ 1555 #define DECLARE_VISIT(Type) \
1556 virtual void Visit##Type(Type##Node* that); 1556 virtual void Visit##Type(Type##Node* that);
1557 FOR_EACH_NODE_TYPE(DECLARE_VISIT) 1557 FOR_EACH_NODE_TYPE(DECLARE_VISIT)
1558 #undef DECLARE_VISIT 1558 #undef DECLARE_VISIT
1559 virtual void VisitLoopChoice(LoopChoiceNode* that); 1559 virtual void VisitLoopChoice(LoopChoiceNode* that);
1560 1560
1561 bool has_failed() { return error_message_ != NULL; } 1561 bool has_failed() { return error_message_ != NULL; }
1562 const char* error_message() { 1562 const char* error_message() {
1563 ASSERT(error_message_ != NULL); 1563 DCHECK(error_message_ != NULL);
1564 return error_message_; 1564 return error_message_;
1565 } 1565 }
1566 void fail(const char* error_message) { 1566 void fail(const char* error_message) {
1567 error_message_ = error_message; 1567 error_message_ = error_message;
1568 } 1568 }
1569 1569
1570 private: 1570 private:
1571 bool ignore_case_; 1571 bool ignore_case_;
1572 bool is_ascii_; 1572 bool is_ascii_;
1573 const char* error_message_; 1573 const char* error_message_;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1616 Handle<String> sample_subject, 1616 Handle<String> sample_subject,
1617 bool is_ascii, Zone* zone); 1617 bool is_ascii, Zone* zone);
1618 1618
1619 static void DotPrint(const char* label, RegExpNode* node, bool ignore_case); 1619 static void DotPrint(const char* label, RegExpNode* node, bool ignore_case);
1620 }; 1620 };
1621 1621
1622 1622
1623 } } // namespace v8::internal 1623 } } // namespace v8::internal
1624 1624
1625 #endif // V8_JSREGEXP_H_ 1625 #endif // V8_JSREGEXP_H_
OLDNEW
« no previous file with comments | « src/json-stringifier.h ('k') | src/jsregexp.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698