v8
3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
|
#include <jsregexp.h>
Public Member Functions | |
TextNode (ZoneList< TextElement > *elms, RegExpNode *on_success) | |
TextNode (RegExpCharacterClass *that, RegExpNode *on_success) | |
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 characters_filled_in, bool not_at_start) |
ZoneList< TextElement > * | elements () |
void | MakeCaseIndependent (bool is_ascii) |
virtual int | GreedyLoopTextLength () |
virtual RegExpNode * | GetSuccessorOfOmnivorousTextNode (RegExpCompiler *compiler) |
virtual void | FillInBMInfo (int offset, int budget, BoyerMooreLookahead *bm, bool not_at_start) |
void | CalculateOffsets () |
virtual RegExpNode * | FilterASCII (int depth, bool ignore_case) |
Public Member Functions inherited from SeqRegExpNode | |
SeqRegExpNode (RegExpNode *on_success) | |
RegExpNode * | on_success () |
void | set_on_success (RegExpNode *node) |
Public Member Functions inherited from RegExpNode | |
RegExpNode (Zone *zone) | |
virtual | ~RegExpNode () |
bool | EmitQuickCheck (RegExpCompiler *compiler, Trace *trace, bool preload_has_checked_bounds, Label *on_possible_success, QuickCheckDetails *details_return, bool fall_through_on_failure) |
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 |
Public Member Functions inherited from ZoneObject | |
INLINE (void *operator new(size_t size, Zone *zone)) | |
void | operator delete (void *, size_t) |
void | operator delete (void *pointer, Zone *zone) |
Additional Inherited Members | |
Static Public Attributes inherited from RegExpNode | |
static const int | kNodeIsTooComplexForGreedyLoops = -1 |
static const int | kRecursionBudget = 200 |
static const int | kMaxCopiesCodeGenerated = 10 |
Protected Types inherited from RegExpNode | |
enum | LimitResult { DONE, CONTINUE } |
Protected Member Functions inherited from SeqRegExpNode | |
RegExpNode * | FilterSuccessor (int depth, bool ignore_case) |
Protected Member Functions inherited from RegExpNode | |
LimitResult | LimitVersions (RegExpCompiler *compiler, Trace *trace) |
void | set_bm_info (bool not_at_start, BoyerMooreLookahead *bm) |
Protected Attributes inherited from RegExpNode | |
RegExpNode * | replacement_ |
Definition at line 844 of file jsregexp.h.
|
inline |
Definition at line 846 of file jsregexp.h.
|
inline |
Definition at line 850 of file jsregexp.h.
References List< T, P >::Add(), and RegExpNode::zone().
|
virtual |
Implements RegExpNode.
void CalculateOffsets | ( | ) |
Definition at line 5711 of file jsregexp.cc.
References List< T, P >::at(), and TextNode::elements().
|
virtual |
Implements RegExpNode.
Definition at line 2366 of file jsregexp.cc.
|
inline |
Definition at line 863 of file jsregexp.h.
Referenced by TextNode::CalculateOffsets(), and TextNode::FillInBMInfo().
|
virtual |
Implements RegExpNode.
Definition at line 3345 of file jsregexp.cc.
References Trace::AdvanceCurrentPositionInTrace(), RegExpCompiler::ascii(), ASSERT, Trace::bound_checked_up_to(), Trace::characters_preloaded(), Trace::cp_offset(), DONE, RegExpCompiler::ignore_case(), RegExpMacroAssembler::kMaxCPOffset, Trace::set_at_start(), and RegExpCompiler::SetRegExpTooBig().
|
virtual |
Reimplemented from SeqRegExpNode.
Definition at line 5822 of file jsregexp.cc.
References ASSERT_EQ, List< T, P >::at(), List< T, ZoneAllocationPolicy >::at(), BoyerMooreLookahead::compiler(), TextNode::elements(), RegExpNode::FillInBMInfo(), CharacterRange::from(), RegExpCompiler::ignore_case(), String::kMaxOneByteCharCode, Ecma262UnCanonicalize::kMaxWidth, BoyerMooreLookahead::length(), BoyerMooreLookahead::max_char(), v8::internal::Min(), SeqRegExpNode::on_success(), BoyerMooreLookahead::Set(), RegExpNode::set_bm_info(), BoyerMooreLookahead::SetAll(), BoyerMooreLookahead::SetInterval(), CharacterRange::to(), and RegExpNode::zone().
|
virtual |
Reimplemented from SeqRegExpNode.
Definition at line 2813 of file jsregexp.cc.
References ASSERT, List< T, ZoneAllocationPolicy >::at(), CharacterRange::Canonicalize(), Latin1::ConvertNonLatin1ToLatin1(), v8::internal::info, CharacterRange::IsCanonical(), String::kMaxOneByteCharCode, Vector< T >::length(), v8::internal::NULL, and Vector< T >::start().
|
virtual |
Implements RegExpNode.
Definition at line 2553 of file jsregexp.cc.
References RegExpCompiler::ascii(), ASSERT, List< T, ZoneAllocationPolicy >::at(), QuickCheckDetails::cannot_match(), QuickCheckDetails::characters(), QuickCheckDetails::Position::determines_perfectly, CharacterRange::from(), RegExpCompiler::ignore_case(), Zone::isolate(), String::kMaxOneByteCharCode, String::kMaxUtf16CodeUnit, Ecma262UnCanonicalize::kMaxWidth, Vector< T >::length(), RegExpCompiler::macro_assembler(), QuickCheckDetails::Position::mask, QuickCheckDetails::positions(), QuickCheckDetails::set_cannot_match(), CharacterRange::to(), QuickCheckDetails::Position::value, and RegExpMacroAssembler::zone().
|
virtual |
Reimplemented from RegExpNode.
Definition at line 3448 of file jsregexp.cc.
References RegExpCompiler::ascii(), List< T, ZoneAllocationPolicy >::at(), CharacterRange::Canonicalize(), CharacterRange::IsCanonical(), String::kMaxOneByteCharCode, String::kMaxUtf16CodeUnit, and v8::internal::NULL.
|
virtual |
Reimplemented from RegExpNode.
Definition at line 3442 of file jsregexp.cc.
void MakeCaseIndependent | ( | bool | is_ascii | ) |
Definition at line 3423 of file jsregexp.cc.
References List< T, ZoneAllocationPolicy >::at().