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, |