|
V8 Project
|
#include <jsregexp.h>
Inheritance diagram for v8::internal::TextNode:
Collaboration diagram for v8::internal::TextNode: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_one_byte) |
| 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 * | FilterOneByte (int depth, bool ignore_case) |
Public Member Functions inherited from v8::internal::SeqRegExpNode | |
| SeqRegExpNode (RegExpNode *on_success) | |
| RegExpNode * | on_success () |
| void | set_on_success (RegExpNode *node) |
Public Member Functions inherited from v8::internal::RegExpNode | |
| 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) |
| 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 v8::internal::ZoneObject | |
| INLINE (void *operator new(size_t size, Zone *zone)) | |
| void | operator delete (void *, size_t) |
| void | operator delete (void *pointer, Zone *zone) |
Private Types | |
| enum | TextEmitPassType { NON_LATIN1_MATCH , SIMPLE_CHARACTER_MATCH , NON_LETTER_CHARACTER_MATCH , CASE_CHARACTER_MATCH , CHARACTER_CLASS_MATCH } |
Private Member Functions | |
| void | TextEmitPass (RegExpCompiler *compiler, TextEmitPassType pass, bool preloaded, Trace *trace, bool first_element_checked, int *checked_up_to) |
| int | Length () |
Static Private Member Functions | |
| static bool | SkipPass (int pass, bool ignore_case) |
Private Attributes | |
| ZoneList< TextElement > * | elms_ |
Static Private Attributes | |
| static const int | kFirstRealPass = SIMPLE_CHARACTER_MATCH |
| static const int | kLastPass = CHARACTER_CLASS_MATCH |
Additional Inherited Members | |
Static Public Attributes inherited from v8::internal::RegExpNode | |
| static const int | kNodeIsTooComplexForGreedyLoops = -1 |
| static const int | kRecursionBudget = 200 |
| static const int | kMaxCopiesCodeGenerated = 10 |
Protected Types inherited from v8::internal::RegExpNode | |
| enum | LimitResult { DONE , CONTINUE } |
Protected Member Functions inherited from v8::internal::SeqRegExpNode | |
| RegExpNode * | FilterSuccessor (int depth, bool ignore_case) |
Protected Member Functions inherited from v8::internal::RegExpNode | |
| LimitResult | LimitVersions (RegExpCompiler *compiler, Trace *trace) |
| void | set_bm_info (bool not_at_start, BoyerMooreLookahead *bm) |
Protected Attributes inherited from v8::internal::RegExpNode | |
| RegExpNode * | replacement_ |
Definition at line 830 of file jsregexp.h.
|
private |
| Enumerator | |
|---|---|
| NON_LATIN1_MATCH | |
| SIMPLE_CHARACTER_MATCH | |
| NON_LETTER_CHARACTER_MATCH | |
| CASE_CHARACTER_MATCH | |
| CHARACTER_CLASS_MATCH | |
Definition at line 862 of file jsregexp.h.
|
inline |
Definition at line 832 of file jsregexp.h.
|
inline |
Definition at line 836 of file jsregexp.h.
References v8::internal::List< T, AllocationPolicy >::Add(), elms_, and v8::internal::RegExpNode::zone().
Here is the call graph for this function:
|
virtual |
Implements v8::internal::RegExpNode.
| void v8::internal::TextNode::CalculateOffsets | ( | ) |
Definition at line 5744 of file jsregexp.cc.
References v8::internal::List< T, AllocationPolicy >::at(), and elements().
Here is the call graph for this function:
|
virtual |
Implements v8::internal::RegExpNode.
Definition at line 2334 of file jsregexp.cc.
|
inline |
Definition at line 849 of file jsregexp.h.
References elms_.
Referenced by CalculateOffsets(), and FillInBMInfo().
Here is the caller graph for this function:
|
virtual |
Implements v8::internal::RegExpNode.
Definition at line 3315 of file jsregexp.cc.
References v8::internal::Trace::AdvanceCurrentPositionInTrace(), v8::internal::Trace::bound_checked_up_to(), v8::internal::Trace::characters_preloaded(), v8::internal::Trace::cp_offset(), DCHECK, v8::internal::DONE, v8::internal::RegExpCompiler::ignore_case(), v8::internal::RegExpMacroAssembler::kMaxCPOffset, v8::internal::RegExpCompiler::one_byte(), v8::internal::Trace::set_at_start(), and v8::internal::RegExpCompiler::SetRegExpTooBig().
Here is the call graph for this function:
|
virtual |
Reimplemented from v8::internal::SeqRegExpNode.
Definition at line 5855 of file jsregexp.cc.
References v8::internal::List< T, AllocationPolicy >::at(), v8::internal::BoyerMooreLookahead::compiler(), DCHECK_EQ, elements(), v8::internal::RegExpNode::FillInBMInfo(), v8::internal::CharacterRange::from(), v8::internal::GetCaseIndependentLetters(), v8::internal::RegExpCompiler::ignore_case(), v8::internal::String::kMaxOneByteCharCode, unibrow::Ecma262UnCanonicalize::kMaxWidth, v8::internal::BoyerMooreLookahead::length(), v8::internal::BoyerMooreLookahead::max_char(), v8::internal::Min(), v8::internal::SeqRegExpNode::on_success(), v8::internal::BoyerMooreLookahead::Set(), v8::internal::RegExpNode::set_bm_info(), v8::internal::BoyerMooreLookahead::SetAll(), v8::internal::BoyerMooreLookahead::SetInterval(), v8::internal::CharacterRange::to(), to(), and v8::internal::RegExpNode::zone().
Here is the call graph for this function:
|
virtual |
Reimplemented from v8::internal::SeqRegExpNode.
Definition at line 2789 of file jsregexp.cc.
References v8::internal::List< T, AllocationPolicy >::at(), v8::internal::CharacterRange::Canonicalize(), v8::internal::cc, unibrow::Latin1::ConvertNonLatin1ToLatin1(), DCHECK, v8::internal::CharacterRange::IsCanonical(), v8::internal::String::kMaxOneByteCharCode, v8::internal::Vector< T >::length(), NULL, v8::internal::RangesContainLatin1Equivalents(), and v8::internal::Vector< T >::start().
Here is the call graph for this function:
|
virtual |
Implements v8::internal::RegExpNode.
Definition at line 2527 of file jsregexp.cc.
References v8::internal::List< T, AllocationPolicy >::at(), v8::internal::QuickCheckDetails::cannot_match(), v8::internal::QuickCheckDetails::characters(), DCHECK, v8::internal::QuickCheckDetails::Position::determines_perfectly, v8::internal::CharacterRange::from(), v8::internal::GetCaseIndependentLetters(), v8::internal::RegExpCompiler::ignore_case(), v8::internal::Zone::isolate(), v8::internal::String::kMaxOneByteCharCode, v8::internal::String::kMaxUtf16CodeUnit, unibrow::Ecma262UnCanonicalize::kMaxWidth, v8::internal::Vector< T >::length(), v8::internal::RegExpCompiler::macro_assembler(), v8::internal::QuickCheckDetails::Position::mask, v8::internal::RegExpCompiler::one_byte(), v8::internal::QuickCheckDetails::positions(), v8::internal::QuickCheckDetails::set_cannot_match(), v8::internal::SmearBitsRight(), v8::internal::CharacterRange::to(), to(), v8::internal::QuickCheckDetails::Position::value, and v8::internal::RegExpMacroAssembler::zone().
Here is the call graph for this function:
|
virtual |
Reimplemented from v8::internal::RegExpNode.
Definition at line 3418 of file jsregexp.cc.
References v8::internal::List< T, AllocationPolicy >::at(), v8::internal::CharacterRange::Canonicalize(), v8::internal::CharacterRange::IsCanonical(), v8::internal::String::kMaxOneByteCharCode, v8::internal::String::kMaxUtf16CodeUnit, NULL, and v8::internal::RegExpCompiler::one_byte().
Here is the call graph for this function:
|
virtual |
Reimplemented from v8::internal::RegExpNode.
Definition at line 3412 of file jsregexp.cc.
|
private |
| void v8::internal::TextNode::MakeCaseIndependent | ( | bool | is_one_byte | ) |
Definition at line 3393 of file jsregexp.cc.
References v8::internal::List< T, AllocationPolicy >::at(), and v8::internal::cc.
Here is the call graph for this function:Definition at line 3299 of file jsregexp.cc.
|
private |
Definition at line 3225 of file jsregexp.cc.
References v8::internal::Trace::backtrack(), v8::internal::cc, v8::internal::Trace::cp_offset(), DCHECK, DCHECK_EQ, v8::internal::DeterminedAlready(), v8::internal::EmitAtomLetter(), v8::internal::EmitAtomNonLetter(), v8::internal::EmitCharClass(), v8::internal::EmitSimpleCharacter(), v8::internal::RegExpMacroAssembler::GoTo(), v8::internal::Zone::isolate(), v8::internal::String::kMaxOneByteCharCode, v8::internal::Vector< T >::length(), v8::internal::RegExpCompiler::macro_assembler(), NULL, v8::internal::RegExpCompiler::one_byte(), v8::internal::Trace::quick_check_performed(), v8::internal::UpdateBoundsCheck(), and v8::internal::RegExpMacroAssembler::zone().
Here is the call graph for this function:
|
private |
Definition at line 879 of file jsregexp.h.
Referenced by elements(), and TextNode().
|
staticprivate |
Definition at line 870 of file jsregexp.h.
|
staticprivate |
Definition at line 871 of file jsregexp.h.