| Index: src/jsregexp.h
|
| ===================================================================
|
| --- src/jsregexp.h (revision 1141)
|
| +++ src/jsregexp.h (working copy)
|
| @@ -588,9 +588,7 @@
|
| virtual ~RegExpNode();
|
| virtual void Accept(NodeVisitor* visitor) = 0;
|
| // Generates a goto to this node or actually generates the code at this point.
|
| - // Until the implementation is complete we will return true for success and
|
| - // false for failure.
|
| - virtual bool Emit(RegExpCompiler* compiler, Trace* trace) = 0;
|
| + virtual void Emit(RegExpCompiler* compiler, Trace* trace) = 0;
|
| // How many characters must this node consume at a minimum in order to
|
| // succeed.
|
| virtual int EatsAtLeast(int recursion_depth) = 0;
|
| @@ -635,7 +633,7 @@
|
| void set_siblings(SiblingList* other) { siblings_ = *other; }
|
|
|
| protected:
|
| - enum LimitResult { DONE, FAIL, CONTINUE };
|
| + enum LimitResult { DONE, CONTINUE };
|
| LimitResult LimitVersions(RegExpCompiler* compiler, Trace* trace);
|
|
|
| // Returns a sibling of this node whose interests and assumptions
|
| @@ -732,7 +730,7 @@
|
| int repetition_limit,
|
| RegExpNode* on_success);
|
| virtual void Accept(NodeVisitor* visitor);
|
| - virtual bool Emit(RegExpCompiler* compiler, Trace* trace);
|
| + virtual void Emit(RegExpCompiler* compiler, Trace* trace);
|
| virtual int EatsAtLeast(int recursion_depth);
|
| virtual void GetQuickCheckDetails(QuickCheckDetails* details,
|
| RegExpCompiler* compiler,
|
| @@ -791,7 +789,7 @@
|
| elms_->Add(TextElement::CharClass(that));
|
| }
|
| virtual void Accept(NodeVisitor* visitor);
|
| - virtual bool Emit(RegExpCompiler* compiler, Trace* trace);
|
| + virtual void Emit(RegExpCompiler* compiler, Trace* trace);
|
| virtual int EatsAtLeast(int recursion_depth);
|
| virtual void GetQuickCheckDetails(QuickCheckDetails* details,
|
| RegExpCompiler* compiler,
|
| @@ -849,7 +847,7 @@
|
| return new AssertionNode(AFTER_NEWLINE, on_success);
|
| }
|
| virtual void Accept(NodeVisitor* visitor);
|
| - virtual bool Emit(RegExpCompiler* compiler, Trace* trace);
|
| + virtual void Emit(RegExpCompiler* compiler, Trace* trace);
|
| virtual int EatsAtLeast(int recursion_depth);
|
| virtual void GetQuickCheckDetails(QuickCheckDetails* details,
|
| RegExpCompiler* compiler,
|
| @@ -876,7 +874,7 @@
|
| virtual void Accept(NodeVisitor* visitor);
|
| int start_register() { return start_reg_; }
|
| int end_register() { return end_reg_; }
|
| - virtual bool Emit(RegExpCompiler* compiler, Trace* trace);
|
| + virtual void Emit(RegExpCompiler* compiler, Trace* trace);
|
| virtual int EatsAtLeast(int recursion_depth);
|
| virtual void GetQuickCheckDetails(QuickCheckDetails* details,
|
| RegExpCompiler* compiler,
|
| @@ -896,7 +894,7 @@
|
| enum Action { ACCEPT, BACKTRACK, NEGATIVE_SUBMATCH_SUCCESS };
|
| explicit EndNode(Action action) : action_(action) { }
|
| virtual void Accept(NodeVisitor* visitor);
|
| - virtual bool Emit(RegExpCompiler* compiler, Trace* trace);
|
| + virtual void Emit(RegExpCompiler* compiler, Trace* trace);
|
| virtual int EatsAtLeast(int recursion_depth) { return 0; }
|
| virtual void GetQuickCheckDetails(QuickCheckDetails* details,
|
| RegExpCompiler* compiler,
|
| @@ -917,7 +915,7 @@
|
| : EndNode(NEGATIVE_SUBMATCH_SUCCESS),
|
| stack_pointer_register_(stack_pointer_reg),
|
| current_position_register_(position_reg) { }
|
| - virtual bool Emit(RegExpCompiler* compiler, Trace* trace);
|
| + virtual void Emit(RegExpCompiler* compiler, Trace* trace);
|
|
|
| private:
|
| int stack_pointer_register_;
|
| @@ -970,7 +968,7 @@
|
| void AddAlternative(GuardedAlternative node) { alternatives()->Add(node); }
|
| ZoneList<GuardedAlternative>* alternatives() { return alternatives_; }
|
| DispatchTable* GetTable(bool ignore_case);
|
| - virtual bool Emit(RegExpCompiler* compiler, Trace* trace);
|
| + virtual void Emit(RegExpCompiler* compiler, Trace* trace);
|
| virtual int EatsAtLeast(int recursion_depth);
|
| int EatsAtLeastHelper(int recursion_depth, RegExpNode* ignore_this_node);
|
| virtual void GetQuickCheckDetails(QuickCheckDetails* details,
|
| @@ -993,7 +991,7 @@
|
| Guard *guard,
|
| Trace* trace);
|
| int CalculatePreloadCharacters(RegExpCompiler* compiler);
|
| - bool EmitOutOfLineContinuation(RegExpCompiler* compiler,
|
| + void EmitOutOfLineContinuation(RegExpCompiler* compiler,
|
| Trace* trace,
|
| GuardedAlternative alternative,
|
| AlternativeGeneration* alt_gen,
|
| @@ -1034,7 +1032,7 @@
|
| body_can_be_zero_length_(body_can_be_zero_length) { }
|
| void AddLoopAlternative(GuardedAlternative alt);
|
| void AddContinueAlternative(GuardedAlternative alt);
|
| - virtual bool Emit(RegExpCompiler* compiler, Trace* trace);
|
| + virtual void Emit(RegExpCompiler* compiler, Trace* trace);
|
| virtual int EatsAtLeast(int recursion_depth); // Returns 0.
|
| virtual void GetQuickCheckDetails(QuickCheckDetails* details,
|
| RegExpCompiler* compiler,
|
| @@ -1136,7 +1134,7 @@
|
| // and pushing a backtrack location onto the backtrack stack. Once this is
|
| // done we can start a new trace or go to one that has already been
|
| // generated.
|
| - bool Flush(RegExpCompiler* compiler, RegExpNode* successor);
|
| + void Flush(RegExpCompiler* compiler, RegExpNode* successor);
|
| int cp_offset() { return cp_offset_; }
|
| DeferredAction* actions() { return actions_; }
|
| // A trivial trace is one that has no deferred actions or other state that
|
| @@ -1184,7 +1182,7 @@
|
| quick_check_performed_ = *d;
|
| }
|
| void InvalidateCurrentCharacter();
|
| - void AdvanceCurrentPositionInTrace(int by, bool ascii);
|
| + void AdvanceCurrentPositionInTrace(int by, RegExpCompiler* compiler);
|
| private:
|
| int FindAffectedRegisters(OutSet* affected_registers);
|
| void PerformDeferredActions(RegExpMacroAssembler* macro,
|
|
|