v8
3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
|
#include <jsregexp.h>
Public Member Functions | |
ChoiceNode (int expected_size, Zone *zone) | |
virtual void | Accept (NodeVisitor *visitor) |
void | AddAlternative (GuardedAlternative node) |
ZoneList< GuardedAlternative > * | alternatives () |
DispatchTable * | GetTable (bool ignore_case) |
virtual void | Emit (RegExpCompiler *compiler, Trace *trace) |
virtual int | EatsAtLeast (int still_to_find, int budget, bool not_at_start) |
int | EatsAtLeastHelper (int still_to_find, int budget, RegExpNode *ignore_this_node, bool not_at_start) |
virtual void | GetQuickCheckDetails (QuickCheckDetails *details, RegExpCompiler *compiler, int characters_filled_in, bool not_at_start) |
virtual void | FillInBMInfo (int offset, int budget, BoyerMooreLookahead *bm, bool not_at_start) |
bool | being_calculated () |
bool | not_at_start () |
void | set_not_at_start () |
void | set_being_calculated (bool b) |
virtual bool | try_to_emit_quick_check_for_alternative (int i) |
virtual RegExpNode * | FilterASCII (int depth, bool ignore_case) |
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) |
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 |
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) |
Protected Member Functions | |
int | GreedyLoopTextLengthForAlternative (GuardedAlternative *alternative) |
Protected Member Functions inherited from RegExpNode | |
LimitResult | LimitVersions (RegExpCompiler *compiler, Trace *trace) |
void | set_bm_info (bool not_at_start, BoyerMooreLookahead *bm) |
Protected Attributes | |
ZoneList< GuardedAlternative > * | alternatives_ |
Protected Attributes inherited from RegExpNode | |
RegExpNode * | replacement_ |
Friends | |
class | DispatchTableConstructor |
class | Analysis |
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 } |
Definition at line 1065 of file jsregexp.h.
|
inlineexplicit |
Definition at line 1067 of file jsregexp.h.
|
virtual |
Implements RegExpNode.
Reimplemented in LoopChoiceNode.
|
inline |
Definition at line 1075 of file jsregexp.h.
References ChoiceNode::alternatives(), and RegExpNode::zone().
Referenced by RegExpEngine::Compile(), and NegativeLookaheadChoiceNode::NegativeLookaheadChoiceNode().
|
inline |
Definition at line 1078 of file jsregexp.h.
References ChoiceNode::alternatives_.
Referenced by ChoiceNode::AddAlternative(), DispatchTableConstructor::BuildTable(), ChoiceNode::FillInBMInfo(), and Analysis::VisitLoopChoice().
|
inline |
Definition at line 1095 of file jsregexp.h.
|
virtual |
Implements RegExpNode.
Reimplemented in LoopChoiceNode, and NegativeLookaheadChoiceNode.
Definition at line 2432 of file jsregexp.cc.
References v8::internal::NULL.
Referenced by ChoiceNode::Emit().
int EatsAtLeastHelper | ( | int | still_to_find, |
int | budget, | ||
RegExpNode * | ignore_this_node, | ||
bool | not_at_start | ||
) |
Definition at line 2402 of file jsregexp.cc.
References RegExpNode::EatsAtLeast().
|
virtual |
Implements RegExpNode.
Reimplemented in LoopChoiceNode.
Definition at line 3928 of file jsregexp.cc.
References Trace::actions(), RegExpMacroAssembler::AdvanceCurrentPosition(), AlternativeGeneration::after, ChoiceNode::alternatives_, RegExpCompiler::ascii(), ASSERT, List< T, ZoneAllocationPolicy >::at(), AlternativeGenerationList::at(), Trace::at_start(), Trace::backtrack(), RegExpMacroAssembler::Bind(), RegExpNode::bm_info(), QuickCheckDetails::cannot_match(), Trace::characters_preloaded(), RegExpMacroAssembler::CheckGreedyLoop(), QuickCheckDetails::Clear(), RegExpNode::CONTINUE, RegExpNode::DONE, ChoiceNode::EatsAtLeast(), RegExpNode::Emit(), RegExpNode::EmitQuickCheck(), BoyerMooreLookahead::EmitSkipInstructions(), AlternativeGeneration::expects_preload, Trace::FALSE_VALUE, RegExpNode::FillInBMInfo(), Trace::Flush(), Trace::flush_budget(), RegExpNode::GetSuccessorOfOmnivorousTextNode(), RegExpMacroAssembler::GoTo(), ChoiceNode::GreedyLoopTextLengthForAlternative(), GuardedAlternative::guards(), Trace::InvalidateCurrentCharacter(), Trace::is_trivial(), v8::internal::kMaxLookaheadForBoyerMoore, RegExpNode::kNodeIsTooComplexForGreedyLoops, RegExpNode::kRecursionBudget, RegExpNode::LimitVersions(), RegExpCompiler::macro_assembler(), Trace::mentions_reg(), v8::internal::Min(), GuardedAlternative::node(), ChoiceNode::not_at_start(), v8::internal::NULL, AlternativeGeneration::possible_success, RegExpMacroAssembler::PushCurrentPosition(), AlternativeGeneration::quick_check_details, Trace::quick_check_performed(), Trace::set_at_start(), Trace::set_backtrack(), Trace::set_bound_checked_up_to(), QuickCheckDetails::set_characters(), Trace::set_characters_preloaded(), Trace::set_flush_budget(), Trace::set_loop_label(), Trace::set_quick_check_performed(), Trace::set_stop_node(), Trace::stop_node(), ChoiceNode::try_to_emit_quick_check_for_alternative(), and RegExpNode::zone().
Referenced by LoopChoiceNode::Emit().
|
virtual |
Reimplemented from RegExpNode.
Reimplemented in LoopChoiceNode, and NegativeLookaheadChoiceNode.
Definition at line 5803 of file jsregexp.cc.
References ChoiceNode::alternatives(), List< T, ZoneAllocationPolicy >::at(), RegExpNode::FillInBMInfo(), GuardedAlternative::guards(), GuardedAlternative::node(), v8::internal::NULL, RegExpNode::SaveBMInfo(), and BoyerMooreLookahead::SetRest().
Referenced by LoopChoiceNode::FillInBMInfo().
|
virtual |
Reimplemented from RegExpNode.
Reimplemented in LoopChoiceNode, and NegativeLookaheadChoiceNode.
Definition at line 2885 of file jsregexp.cc.
References List< T, ZoneAllocationPolicy >::Add(), ASSERT, RegExpNode::FilterASCII(), GuardedAlternative::guards(), v8::internal::info, GuardedAlternative::node(), and v8::internal::NULL.
Referenced by LoopChoiceNode::FilterASCII().
|
virtual |
Implements RegExpNode.
Reimplemented in LoopChoiceNode, and NegativeLookaheadChoiceNode.
Definition at line 2986 of file jsregexp.cc.
References ASSERT, QuickCheckDetails::characters(), RegExpNode::GetQuickCheckDetails(), and QuickCheckDetails::Merge().
Referenced by LoopChoiceNode::GetQuickCheckDetails().
DispatchTable * GetTable | ( | bool | ignore_case | ) |
Definition at line 962 of file jsregexp.cc.
References DispatchTableConstructor::BuildTable(), and v8::internal::NULL.
|
protected |
Definition at line 3476 of file jsregexp.cc.
References RegExpNode::GreedyLoopTextLength(), RegExpCompiler::kMaxRecursion, GuardedAlternative::node(), and SeqRegExpNode::on_success().
Referenced by ChoiceNode::Emit().
|
inline |
Definition at line 1096 of file jsregexp.h.
Referenced by ChoiceNode::Emit().
|
inline |
Definition at line 1098 of file jsregexp.h.
Referenced by DispatchTableConstructor::BuildTable().
|
inline |
Definition at line 1097 of file jsregexp.h.
|
inlinevirtual |
Reimplemented in NegativeLookaheadChoiceNode.
Definition at line 1099 of file jsregexp.h.
Referenced by ChoiceNode::Emit().
|
friend |
Definition at line 1108 of file jsregexp.h.
|
friend |
Definition at line 1107 of file jsregexp.h.
|
protected |
Definition at line 1104 of file jsregexp.h.
Referenced by ChoiceNode::alternatives(), ChoiceNode::Emit(), and NegativeLookaheadChoiceNode::FillInBMInfo().