V8 Project
|
#include <jsregexp.h>
Public Types | |
enum | AssertionType { AT_END , AT_START , AT_BOUNDARY , AT_NON_BOUNDARY , AFTER_NEWLINE } |
Public Member Functions | |
virtual void | Accept (NodeVisitor *visitor) |
virtual void | Emit (RegExpCompiler *compiler, Trace *trace) |
virtual int | EatsAtLeast (int still_to_find, int budget, bool not_at_start) |
virtual void | GetQuickCheckDetails (QuickCheckDetails *details, RegExpCompiler *compiler, int filled_in, bool not_at_start) |
virtual void | FillInBMInfo (int offset, int budget, BoyerMooreLookahead *bm, bool not_at_start) |
AssertionType | assertion_type () |
![]() | |
SeqRegExpNode (RegExpNode *on_success) | |
RegExpNode * | on_success () |
void | set_on_success (RegExpNode *node) |
virtual RegExpNode * | FilterOneByte (int depth, bool ignore_case) |
![]() | |
RegExpNode (Zone *zone) | |
virtual | ~RegExpNode () |
bool | EmitQuickCheck (RegExpCompiler *compiler, Trace *bounds_check_trace, Trace *trace, bool preload_has_checked_bounds, Label *on_possible_success, QuickCheckDetails *details_return, bool fall_through_on_failure) |
virtual int | GreedyLoopTextLength () |
virtual RegExpNode * | GetSuccessorOfOmnivorousTextNode (RegExpCompiler *compiler) |
RegExpNode * | replacement () |
RegExpNode * | set_replacement (RegExpNode *replacement) |
void | SaveBMInfo (BoyerMooreLookahead *bm, bool not_at_start, int offset) |
Label * | label () |
NodeInfo * | info () |
BoyerMooreLookahead * | bm_info (bool not_at_start) |
Zone * | zone () const |
![]() | |
INLINE (void *operator new(size_t size, Zone *zone)) | |
void | operator delete (void *, size_t) |
void | operator delete (void *pointer, Zone *zone) |
Static Public Member Functions | |
static AssertionNode * | AtEnd (RegExpNode *on_success) |
static AssertionNode * | AtStart (RegExpNode *on_success) |
static AssertionNode * | AtBoundary (RegExpNode *on_success) |
static AssertionNode * | AtNonBoundary (RegExpNode *on_success) |
static AssertionNode * | AfterNewline (RegExpNode *on_success) |
Private Types | |
enum | IfPrevious { kIsNonWord , kIsWord } |
Private Member Functions | |
void | EmitBoundaryCheck (RegExpCompiler *compiler, Trace *trace) |
void | BacktrackIfPrevious (RegExpCompiler *compiler, Trace *trace, IfPrevious backtrack_if_previous) |
AssertionNode (AssertionType t, RegExpNode *on_success) | |
Private Attributes | |
AssertionType | assertion_type_ |
Additional Inherited Members | |
![]() | |
static const int | kNodeIsTooComplexForGreedyLoops = -1 |
static const int | kRecursionBudget = 200 |
static const int | kMaxCopiesCodeGenerated = 10 |
![]() | |
enum | LimitResult { DONE , CONTINUE } |
![]() | |
RegExpNode * | FilterSuccessor (int depth, bool ignore_case) |
![]() | |
LimitResult | LimitVersions (RegExpCompiler *compiler, Trace *trace) |
void | set_bm_info (bool not_at_start, BoyerMooreLookahead *bm) |
![]() | |
RegExpNode * | replacement_ |
Definition at line 883 of file jsregexp.h.
Enumerator | |
---|---|
AT_END | |
AT_START | |
AT_BOUNDARY | |
AT_NON_BOUNDARY | |
AFTER_NEWLINE |
Definition at line 885 of file jsregexp.h.
|
private |
|
inlineprivate |
Definition at line 926 of file jsregexp.h.
Referenced by AfterNewline(), AtBoundary(), AtEnd(), AtNonBoundary(), and AtStart().
|
virtual |
Implements v8::internal::RegExpNode.
|
inlinestatic |
Definition at line 904 of file jsregexp.h.
References AFTER_NEWLINE, AssertionNode(), v8::internal::SeqRegExpNode::on_success(), and v8::internal::RegExpNode::zone().
|
inline |
|
inlinestatic |
Definition at line 898 of file jsregexp.h.
References AssertionNode(), AT_BOUNDARY, v8::internal::SeqRegExpNode::on_success(), and v8::internal::RegExpNode::zone().
|
inlinestatic |
Definition at line 892 of file jsregexp.h.
References AssertionNode(), AT_END, v8::internal::SeqRegExpNode::on_success(), and v8::internal::RegExpNode::zone().
|
inlinestatic |
Definition at line 901 of file jsregexp.h.
References AssertionNode(), AT_NON_BOUNDARY, v8::internal::SeqRegExpNode::on_success(), and v8::internal::RegExpNode::zone().
|
inlinestatic |
Definition at line 895 of file jsregexp.h.
References AssertionNode(), AT_START, v8::internal::SeqRegExpNode::on_success(), and v8::internal::RegExpNode::zone().
|
private |
Definition at line 3098 of file jsregexp.cc.
References v8::internal::Trace::backtrack(), v8::internal::RegExpMacroAssembler::Bind(), v8::internal::RegExpMacroAssembler::CheckAtStart(), v8::internal::Trace::cp_offset(), v8::internal::EmitWordCheck(), v8::internal::Trace::InvalidateCurrentCharacter(), v8::internal::RegExpMacroAssembler::LoadCurrentCharacter(), and v8::internal::RegExpCompiler::macro_assembler().
|
virtual |
Implements v8::internal::RegExpNode.
Definition at line 2297 of file jsregexp.cc.
|
virtual |
Implements v8::internal::RegExpNode.
Definition at line 3145 of file jsregexp.cc.
References v8::internal::Trace::at_start(), v8::internal::Trace::backtrack(), v8::internal::RegExpMacroAssembler::Bind(), v8::internal::RegExpMacroAssembler::CheckNotAtStart(), v8::internal::RegExpMacroAssembler::CheckPosition(), v8::internal::Trace::cp_offset(), v8::internal::EmitHat(), v8::internal::Trace::FALSE_VALUE, v8::internal::RegExpMacroAssembler::GoTo(), v8::internal::RegExpCompiler::macro_assembler(), v8::internal::Trace::set_at_start(), and v8::internal::Trace::UNKNOWN.
|
private |
Definition at line 3047 of file jsregexp.cc.
References v8::internal::BoyerMooreLookahead::at(), AT_BOUNDARY, v8::internal::Trace::at_start(), v8::internal::RegExpMacroAssembler::Bind(), v8::internal::Trace::characters_preloaded(), v8::internal::Trace::cp_offset(), DCHECK, v8::internal::EmitWordCheck(), v8::internal::Trace::FALSE_VALUE, v8::internal::RegExpMacroAssembler::GoTo(), v8::internal::BoyerMoorePositionInfo::is_non_word(), v8::internal::BoyerMoorePositionInfo::is_word(), v8::internal::kMaxLookaheadForBoyerMoore, v8::internal::RegExpMacroAssembler::LoadCurrentCharacter(), v8::internal::RegExpCompiler::macro_assembler(), v8::internal::Min(), NULL, v8::internal::Trace::TRUE_VALUE, and v8::internal::Trace::UNKNOWN.
|
virtual |
Reimplemented from v8::internal::SeqRegExpNode.
Definition at line 2313 of file jsregexp.cc.
|
virtual |
Implements v8::internal::RegExpNode.
Definition at line 3130 of file jsregexp.cc.
References v8::internal::QuickCheckDetails::set_cannot_match().
|
private |
Definition at line 928 of file jsregexp.h.
Referenced by assertion_type().