v8
3.11.10(node0.8.26)
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 recursion_depth, 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 recursion_depth, int budget, BoyerMooreLookahead *bm, bool not_at_start) |
void | CalculateOffsets () |
virtual RegExpNode * | FilterASCII (int depth) |
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 | kFillInBMBudget = 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) |
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 815 of file jsregexp.h.
|
inline |
Definition at line 817 of file jsregexp.h.
|
inline |
Definition at line 821 of file jsregexp.h.
References TextElement::CharClass(), and RegExpNode::zone().
|
virtual |
Implements RegExpNode.
void CalculateOffsets | ( | ) |
Definition at line 5591 of file jsregexp.cc.
References TextElement::ATOM, TextElement::cp_offset, TextElement::data, RegExpAtom::data(), TextNode::elements(), Vector< T >::length(), TextElement::type, and TextElement::u_atom.
|
virtual |
Implements RegExpNode.
Definition at line 2274 of file jsregexp.cc.
References RegExpCompiler::kMaxRecursion.
|
inline |
Definition at line 836 of file jsregexp.h.
Referenced by TextNode::CalculateOffsets(), and TextNode::FillInBMInfo().
|
virtual |
Implements RegExpNode.
Definition at line 3226 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 5709 of file jsregexp.cc.
References ASSERT, List< T, ZoneAllocationPolicy >::at(), TextElement::ATOM, TextElement::CHAR_CLASS, BoyerMooreLookahead::compiler(), TextElement::data, RegExpAtom::data(), TextNode::elements(), RegExpNode::FillInBMInfo(), CharacterRange::from(), RegExpCompiler::ignore_case(), RegExpCharacterClass::is_negated(), ISOLATE, String::kMaxAsciiCharCode, Ecma262UnCanonicalize::kMaxWidth, BoyerMooreLookahead::length(), RegExpAtom::length(), BoyerMooreLookahead::max_char(), v8::internal::Min(), SeqRegExpNode::on_success(), RegExpCharacterClass::ranges(), BoyerMooreLookahead::Set(), RegExpNode::set_bm_info(), BoyerMooreLookahead::SetAll(), BoyerMooreLookahead::SetInterval(), CharacterRange::to(), TextElement::type, TextElement::u_atom, TextElement::u_char_class, and RegExpNode::zone().
|
virtual |
Reimplemented from SeqRegExpNode.
Definition at line 2702 of file jsregexp.cc.
References ASSERT, List< T, ZoneAllocationPolicy >::at(), TextElement::ATOM, CharacterRange::Canonicalize(), TextElement::CHAR_CLASS, TextElement::data, RegExpAtom::data(), RegExpCharacterClass::is_negated(), CharacterRange::IsCanonical(), String::kMaxAsciiCharCode, Vector< T >::length(), v8::internal::NULL, RegExpCharacterClass::ranges(), TextElement::type, TextElement::u_atom, and TextElement::u_char_class.
|
virtual |
Implements RegExpNode.
Definition at line 2459 of file jsregexp.cc.
References RegExpCompiler::ascii(), ASSERT, List< T, ZoneAllocationPolicy >::at(), TextElement::ATOM, QuickCheckDetails::cannot_match(), QuickCheckDetails::characters(), TextElement::data, RegExpAtom::data(), QuickCheckDetails::Position::determines_perfectly, CharacterRange::from(), RegExpCompiler::ignore_case(), RegExpCharacterClass::is_negated(), String::kMaxAsciiCharCode, String::kMaxUtf16CodeUnit, Ecma262UnCanonicalize::kMaxWidth, Vector< T >::length(), QuickCheckDetails::Position::mask, QuickCheckDetails::positions(), RegExpCharacterClass::ranges(), QuickCheckDetails::set_cannot_match(), CharacterRange::to(), TextElement::type, TextElement::u_atom, TextElement::u_char_class, and QuickCheckDetails::Position::value.
|
virtual |
Reimplemented from RegExpNode.
Definition at line 3333 of file jsregexp.cc.
References RegExpCompiler::ascii(), List< T, ZoneAllocationPolicy >::at(), CharacterRange::Canonicalize(), TextElement::CHAR_CLASS, TextElement::data, RegExpCharacterClass::is_negated(), CharacterRange::IsCanonical(), String::kMaxAsciiCharCode, String::kMaxUtf16CodeUnit, v8::internal::NULL, RegExpCharacterClass::ranges(), TextElement::type, and TextElement::u_char_class.
|
virtual |
Reimplemented from RegExpNode.
Definition at line 3323 of file jsregexp.cc.
References TextElement::CHAR_CLASS, TextElement::cp_offset, TextElement::data, RegExpAtom::data(), Vector< T >::length(), TextElement::type, and TextElement::u_atom.
void MakeCaseIndependent | ( | bool | is_ascii | ) |
Definition at line 3304 of file jsregexp.cc.
References List< T, ZoneAllocationPolicy >::at(), TextElement::CHAR_CLASS, TextElement::data, RegExpCharacterClass::is_standard(), RegExpCharacterClass::ranges(), TextElement::type, and TextElement::u_char_class.