v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LoopChoiceNode Class Reference

#include <jsregexp.h>

Inheritance diagram for LoopChoiceNode:
Collaboration diagram for LoopChoiceNode:

Public Member Functions

 LoopChoiceNode (bool body_can_be_zero_length, Zone *zone)
 
void AddLoopAlternative (GuardedAlternative alt)
 
void AddContinueAlternative (GuardedAlternative alt)
 
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)
 
virtual void FillInBMInfo (int offset, int budget, BoyerMooreLookahead *bm, bool not_at_start)
 
RegExpNodeloop_node ()
 
RegExpNodecontinue_node ()
 
bool body_can_be_zero_length ()
 
virtual void Accept (NodeVisitor *visitor)
 
virtual RegExpNodeFilterASCII (int depth, bool ignore_case)
 
- Public Member Functions inherited from ChoiceNode
 ChoiceNode (int expected_size, Zone *zone)
 
void AddAlternative (GuardedAlternative node)
 
ZoneList< GuardedAlternative > * alternatives ()
 
DispatchTableGetTable (bool ignore_case)
 
int EatsAtLeastHelper (int still_to_find, int budget, RegExpNode *ignore_this_node, 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)
 
- 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 RegExpNodeGetSuccessorOfOmnivorousTextNode (RegExpCompiler *compiler)
 
RegExpNodereplacement ()
 
RegExpNodeset_replacement (RegExpNode *replacement)
 
void SaveBMInfo (BoyerMooreLookahead *bm, bool not_at_start, int offset)
 
Label * label ()
 
NodeInfoinfo ()
 
BoyerMooreLookaheadbm_info (bool not_at_start)
 
Zonezone () 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 ChoiceNode
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 inherited from ChoiceNode
ZoneList< GuardedAlternative > * alternatives_
 
- Protected Attributes inherited from RegExpNode
RegExpNodereplacement_
 

Detailed Description

Definition at line 1159 of file jsregexp.h.

Constructor & Destructor Documentation

LoopChoiceNode ( bool  body_can_be_zero_length,
Zone zone 
)
inlineexplicit

Definition at line 1161 of file jsregexp.h.

Member Function Documentation

void Accept ( NodeVisitor visitor)
virtual

Reimplemented from ChoiceNode.

Definition at line 1584 of file jsregexp.cc.

References NodeVisitor::VisitLoopChoice().

void AddContinueAlternative ( GuardedAlternative  alt)

Definition at line 3506 of file jsregexp.cc.

References ASSERT_EQ, GuardedAlternative::node(), and v8::internal::NULL.

void AddLoopAlternative ( GuardedAlternative  alt)

Definition at line 3499 of file jsregexp.cc.

References ASSERT_EQ, GuardedAlternative::node(), and v8::internal::NULL.

bool body_can_be_zero_length ( )
inline

Definition at line 1180 of file jsregexp.h.

RegExpNode* continue_node ( )
inline

Definition at line 1179 of file jsregexp.h.

int EatsAtLeast ( int  still_to_find,
int  budget,
bool  not_at_start 
)
virtual

Reimplemented from ChoiceNode.

Definition at line 2422 of file jsregexp.cc.

void FillInBMInfo ( int  offset,
int  budget,
BoyerMooreLookahead bm,
bool  not_at_start 
)
virtual

Reimplemented from ChoiceNode.

Definition at line 2972 of file jsregexp.cc.

References ChoiceNode::FillInBMInfo(), and BoyerMooreLookahead::SetRest().

RegExpNode * FilterASCII ( int  depth,
bool  ignore_case 
)
virtual

Reimplemented from ChoiceNode.

Definition at line 2867 of file jsregexp.cc.

References RegExpNode::FilterASCII(), ChoiceNode::FilterASCII(), v8::internal::info, and v8::internal::NULL.

void GetQuickCheckDetails ( QuickCheckDetails details,
RegExpCompiler compiler,
int  characters_filled_in,
bool  not_at_start 
)
virtual

Reimplemented from ChoiceNode.

Definition at line 2959 of file jsregexp.cc.

References ChoiceNode::GetQuickCheckDetails(), and v8::internal::info.

RegExpNode* loop_node ( )
inline

Definition at line 1178 of file jsregexp.h.

Referenced by Analysis::VisitLoopChoice().


The documentation for this class was generated from the following files: