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

#include <jsregexp.h>

Inheritance diagram for ActionNode:
Collaboration diagram for ActionNode:

Public Types

enum  Type {
  SET_REGISTER, INCREMENT_REGISTER, STORE_POSITION, BEGIN_SUBMATCH,
  POSITIVE_SUBMATCH_SUCCESS, EMPTY_MATCH_CHECK, CLEAR_CAPTURES
}
 

Public Member Functions

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 filled_in, bool not_at_start)
 
virtual void FillInBMInfo (int offset, int recursion_depth, int budget, BoyerMooreLookahead *bm, bool not_at_start)
 
Type type ()
 
virtual int GreedyLoopTextLength ()
 
- Public Member Functions inherited from SeqRegExpNode
 SeqRegExpNode (RegExpNode *on_success)
 
RegExpNodeon_success ()
 
void set_on_success (RegExpNode *node)
 
virtual RegExpNodeFilterASCII (int depth)
 
- 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 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)
 

Static Public Member Functions

static ActionNodeSetRegister (int reg, int val, RegExpNode *on_success)
 
static ActionNodeIncrementRegister (int reg, RegExpNode *on_success)
 
static ActionNodeStorePosition (int reg, bool is_capture, RegExpNode *on_success)
 
static ActionNodeClearCaptures (Interval range, RegExpNode *on_success)
 
static ActionNodeBeginSubmatch (int stack_pointer_reg, int position_reg, RegExpNode *on_success)
 
static ActionNodePositiveSubmatchSuccess (int stack_pointer_reg, int restore_reg, int clear_capture_count, int clear_capture_from, RegExpNode *on_success)
 
static ActionNodeEmptyMatchCheck (int start_register, int repetition_register, int repetition_limit, RegExpNode *on_success)
 

Friends

class DotPrinter
 

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
RegExpNodeFilterSuccessor (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
RegExpNodereplacement_
 

Detailed Description

Definition at line 745 of file jsregexp.h.

Member Enumeration Documentation

enum Type
Enumerator
SET_REGISTER 
INCREMENT_REGISTER 
STORE_POSITION 
BEGIN_SUBMATCH 
POSITIVE_SUBMATCH_SUCCESS 
EMPTY_MATCH_CHECK 
CLEAR_CAPTURES 

Definition at line 747 of file jsregexp.h.

Member Function Documentation

virtual void Accept ( NodeVisitor visitor)
virtual

Implements RegExpNode.

ActionNode * BeginSubmatch ( int  stack_pointer_reg,
int  position_reg,
RegExpNode on_success 
)
static

Definition at line 1594 of file jsregexp.cc.

References ActionNode::u_submatch, and RegExpNode::zone().

Referenced by RegExpAssertion::ToNode(), and RegExpLookahead::ToNode().

ActionNode * ClearCaptures ( Interval  range,
RegExpNode on_success 
)
static
int EatsAtLeast ( int  still_to_find,
int  recursion_depth,
bool  not_at_start 
)
virtual

Implements RegExpNode.

Definition at line 2361 of file jsregexp.cc.

References RegExpCompiler::kMaxRecursion.

ActionNode * EmptyMatchCheck ( int  start_register,
int  repetition_register,
int  repetition_limit,
RegExpNode on_success 
)
static

Definition at line 1620 of file jsregexp.cc.

References ActionNode::u_empty_match_check, and RegExpNode::zone().

Referenced by RegExpQuantifier::ToNode().

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

Reimplemented from SeqRegExpNode.

Definition at line 2372 of file jsregexp.cc.

References BoyerMooreLookahead::SetRest().

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

Implements RegExpNode.

Definition at line 779 of file jsregexp.h.

References RegExpNode::GetQuickCheckDetails(), and SeqRegExpNode::on_success().

virtual int GreedyLoopTextLength ( )
inlinevirtual

Reimplemented from RegExpNode.

Definition at line 793 of file jsregexp.h.

References RegExpNode::kNodeIsTooComplexForGreedyLoops.

ActionNode * IncrementRegister ( int  reg,
RegExpNode on_success 
)
static

Definition at line 1565 of file jsregexp.cc.

References ActionNode::u_increment_register, and RegExpNode::zone().

Referenced by RegExpQuantifier::ToNode().

ActionNode * PositiveSubmatchSuccess ( int  stack_pointer_reg,
int  restore_reg,
int  clear_capture_count,
int  clear_capture_from,
RegExpNode on_success 
)
static

Definition at line 1605 of file jsregexp.cc.

References ActionNode::u_submatch, and RegExpNode::zone().

Referenced by RegExpAssertion::ToNode(), and RegExpLookahead::ToNode().

ActionNode * SetRegister ( int  reg,
int  val,
RegExpNode on_success 
)
static

Definition at line 1554 of file jsregexp.cc.

References ActionNode::u_store_register, and RegExpNode::zone().

Referenced by RegExpQuantifier::ToNode().

ActionNode * StorePosition ( int  reg,
bool  is_capture,
RegExpNode on_success 
)
static
Type type ( )
inline

Definition at line 791 of file jsregexp.h.

Friends And Related Function Documentation

friend class DotPrinter
friend

Definition at line 828 of file jsregexp.h.

Field Documentation

int clear_register_count

Definition at line 811 of file jsregexp.h.

Referenced by ActionNode::Emit().

int clear_register_from

Definition at line 812 of file jsregexp.h.

int current_position_register

Definition at line 810 of file jsregexp.h.

bool is_capture

Definition at line 806 of file jsregexp.h.

int range_from

Definition at line 820 of file jsregexp.h.

int range_to

Definition at line 821 of file jsregexp.h.

int reg

Definition at line 798 of file jsregexp.h.

int repetition_limit

Definition at line 817 of file jsregexp.h.

int repetition_register

Definition at line 816 of file jsregexp.h.

int stack_pointer_register

Definition at line 809 of file jsregexp.h.

int start_register

Definition at line 815 of file jsregexp.h.

struct { ... } u_clear_captures
struct { ... } u_empty_match_check
struct { ... } u_increment_register
struct { ... } u_position_register
struct { ... } u_store_register

Referenced by ActionNode::SetRegister().

struct { ... } u_submatch
int value

Definition at line 799 of file jsregexp.h.


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