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
RegExpNode Class Referenceabstract

#include <jsregexp.h>

Inheritance diagram for RegExpNode:
Collaboration diagram for RegExpNode:

Public Member Functions

 RegExpNode (Zone *zone)
 
virtual ~RegExpNode ()
 
virtual void Accept (NodeVisitor *visitor)=0
 
virtual void Emit (RegExpCompiler *compiler, Trace *trace)=0
 
virtual int EatsAtLeast (int still_to_find, int budget, bool not_at_start)=0
 
bool EmitQuickCheck (RegExpCompiler *compiler, Trace *trace, bool preload_has_checked_bounds, Label *on_possible_success, QuickCheckDetails *details_return, bool fall_through_on_failure)
 
virtual void GetQuickCheckDetails (QuickCheckDetails *details, RegExpCompiler *compiler, int characters_filled_in, bool not_at_start)=0
 
virtual int GreedyLoopTextLength ()
 
virtual RegExpNodeGetSuccessorOfOmnivorousTextNode (RegExpCompiler *compiler)
 
virtual void FillInBMInfo (int offset, int budget, BoyerMooreLookahead *bm, bool not_at_start)
 
virtual RegExpNodeFilterASCII (int depth, bool ignore_case)
 
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)
 

Static Public Attributes

static const int kNodeIsTooComplexForGreedyLoops = -1
 
static const int kRecursionBudget = 200
 
static const int kMaxCopiesCodeGenerated = 10
 

Protected Types

enum  LimitResult { DONE, CONTINUE }
 

Protected Member Functions

LimitResult LimitVersions (RegExpCompiler *compiler, Trace *trace)
 
void set_bm_info (bool not_at_start, BoyerMooreLookahead *bm)
 

Protected Attributes

RegExpNodereplacement_
 

Detailed Description

Definition at line 588 of file jsregexp.h.

Member Enumeration Documentation

enum LimitResult
protected
Enumerator
DONE 
CONTINUE 

Definition at line 685 of file jsregexp.h.

Constructor & Destructor Documentation

RegExpNode ( Zone zone)
inlineexplicit

Definition at line 590 of file jsregexp.h.

References v8::internal::NULL.

~RegExpNode ( )
virtual

Definition at line 2257 of file jsregexp.cc.

Member Function Documentation

virtual void Accept ( NodeVisitor visitor)
pure virtual
BoyerMooreLookahead* bm_info ( bool  not_at_start)
inline

Definition at line 678 of file jsregexp.h.

Referenced by ChoiceNode::Emit().

virtual int EatsAtLeast ( int  still_to_find,
int  budget,
bool  not_at_start 
)
pure virtual
virtual void FillInBMInfo ( int  offset,
int  budget,
BoyerMooreLookahead bm,
bool  not_at_start 
)
inlinevirtual
virtual RegExpNode* FilterASCII ( int  depth,
bool  ignore_case 
)
inlinevirtual
virtual void GetQuickCheckDetails ( QuickCheckDetails details,
RegExpCompiler compiler,
int  characters_filled_in,
bool  not_at_start 
)
pure virtual
virtual RegExpNode* GetSuccessorOfOmnivorousTextNode ( RegExpCompiler compiler)
inlinevirtual

Reimplemented in TextNode.

Definition at line 627 of file jsregexp.h.

References v8::internal::NULL.

Referenced by ChoiceNode::Emit().

virtual int GreedyLoopTextLength ( )
inlinevirtual

Reimplemented in TextNode, and ActionNode.

Definition at line 624 of file jsregexp.h.

References RegExpNode::kNodeIsTooComplexForGreedyLoops.

Referenced by ChoiceNode::GreedyLoopTextLengthForAlternative().

Label* label ( )
inline

Definition at line 668 of file jsregexp.h.

RegExpNode* replacement ( )
inline

Definition at line 650 of file jsregexp.h.

References ASSERT, RegExpNode::info(), and RegExpNode::replacement_.

Referenced by RegExpNode::set_replacement().

void SaveBMInfo ( BoyerMooreLookahead bm,
bool  not_at_start,
int  offset 
)
inline

Definition at line 664 of file jsregexp.h.

References RegExpNode::set_bm_info().

Referenced by BackReferenceNode::FillInBMInfo(), and ChoiceNode::FillInBMInfo().

void set_bm_info ( bool  not_at_start,
BoyerMooreLookahead bm 
)
inlineprotected
RegExpNode* set_replacement ( RegExpNode replacement)
inline

Field Documentation

const int kMaxCopiesCodeGenerated = 10
static

Definition at line 674 of file jsregexp.h.

const int kNodeIsTooComplexForGreedyLoops = -1
static
const int kRecursionBudget = 200
static

Definition at line 637 of file jsregexp.h.

Referenced by ChoiceNode::Emit().

RegExpNode* replacement_
protected

Definition at line 686 of file jsregexp.h.

Referenced by RegExpNode::replacement(), and RegExpNode::set_replacement().


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