v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::ActionNode Class Reference

#include <regexp-nodes.h>

Inheritance diagram for v8::internal::ActionNode:
Collaboration diagram for v8::internal::ActionNode:

Public Types

enum  ActionType {
  SET_REGISTER_FOR_LOOP , INCREMENT_REGISTER , STORE_POSITION , BEGIN_POSITIVE_SUBMATCH ,
  BEGIN_NEGATIVE_SUBMATCH , POSITIVE_SUBMATCH_SUCCESS , EMPTY_MATCH_CHECK , CLEAR_CAPTURES ,
  MODIFY_FLAGS
}
 

Public Member Functions

ActionNodeAsActionNode () override
 
void Accept (NodeVisitor *visitor) override
 
void Emit (RegExpCompiler *compiler, Trace *trace) override
 
void GetQuickCheckDetails (QuickCheckDetails *details, RegExpCompiler *compiler, int filled_in, bool not_at_start) override
 
void FillInBMInfo (Isolate *isolate, int offset, int budget, BoyerMooreLookahead *bm, bool not_at_start) override
 
ActionType action_type () const
 
int GreedyLoopTextLength () override
 
RegExpFlags flags () const
 
ActionNodesuccess_node () const
 
- Public Member Functions inherited from v8::internal::SeqRegExpNode
 SeqRegExpNode (RegExpNode *on_success)
 
RegExpNodeon_success ()
 
void set_on_success (RegExpNode *node)
 
RegExpNodeFilterOneByte (int depth, RegExpCompiler *compiler) override
 
void FillInBMInfo (Isolate *isolate, int offset, int budget, BoyerMooreLookahead *bm, bool not_at_start) override
 
SeqRegExpNodeAsSeqRegExpNode () override
 
- Public Member Functions inherited from v8::internal::RegExpNode
 RegExpNode (Zone *zone)
 
virtual ~RegExpNode ()
 
uint32_t EatsAtLeast (bool not_at_start)
 
virtual EatsAtLeastInfo EatsAtLeastFromLoopEntry ()
 
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, ChoiceNode *predecessor)
 
virtual void GetQuickCheckDetailsFromLoopEntry (QuickCheckDetails *details, RegExpCompiler *compiler, int characters_filled_in, bool not_at_start)
 
virtual RegExpNodeGetSuccessorOfOmnivorousTextNode (RegExpCompiler *compiler)
 
bool KeepRecursing (RegExpCompiler *compiler)
 
RegExpNodereplacement ()
 
RegExpNodeset_replacement (RegExpNode *replacement)
 
void SaveBMInfo (BoyerMooreLookahead *bm, bool not_at_start, int offset)
 
Labellabel ()
 
bool on_work_list ()
 
void set_on_work_list (bool value)
 
NodeInfoinfo ()
 
const EatsAtLeastInfoeats_at_least_info () const
 
void set_eats_at_least_info (const EatsAtLeastInfo &eats_at_least)
 
void SetDoNotInline ()
 
BoyerMooreLookaheadbm_info (bool not_at_start)
 
Zonezone () const
 
- Public Member Functions inherited from v8::internal::ZoneObject
void * operator new (size_t, Zone *)=delete
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *, size_t)
 
void operator delete (void *pointer, Zone *zone)=delete
 

Static Public Member Functions

static ActionNodeSetRegisterForLoop (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 ActionNodeBeginPositiveSubmatch (int stack_pointer_reg, int position_reg, RegExpNode *body, ActionNode *success_node)
 
static ActionNodeBeginNegativeSubmatch (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)
 
static ActionNodeModifyFlags (RegExpFlags flags, RegExpNode *on_success)
 

Protected Member Functions

 ActionNode (ActionType action_type, RegExpNode *on_success)
 
- Protected Member Functions inherited from v8::internal::SeqRegExpNode
RegExpNodeFilterSuccessor (int depth, RegExpCompiler *compiler)
 
- Protected Member Functions inherited from v8::internal::RegExpNode
LimitResult LimitVersions (RegExpCompiler *compiler, Trace *trace)
 
void set_bm_info (bool not_at_start, BoyerMooreLookahead *bm)
 

Private Attributes

union { 
 
   struct { 
 
      int   reg 
 
      int   value 
 
   }   u_store_register 
 
   struct { 
 
      int   reg 
 
   }   u_increment_register 
 
   struct { 
 
      int   reg 
 
      bool   is_capture 
 
   }   u_position_register 
 
   struct { 
 
      int   stack_pointer_register 
 
      int   current_position_register 
 
      int   clear_register_count 
 
      int   clear_register_from 
 
      ActionNode *   success_node 
 
   }   u_submatch 
 
   struct { 
 
      int   start_register 
 
      int   repetition_register 
 
      int   repetition_limit 
 
   }   u_empty_match_check 
 
   struct { 
 
      int   range_from 
 
      int   range_to 
 
   }   u_clear_captures 
 
   struct { 
 
      int   flags 
 
   }   u_modify_flags 
 
data_ 
 
ActionType action_type_
 
friend Zone
 

Friends

class DotPrinterImpl
 

Additional Inherited Members

- Static Public Attributes inherited from v8::internal::RegExpNode
static const int kNodeIsTooComplexForGreedyLoops = kMinInt
 
static const int kRecursionBudget = 200
 
static const int kMaxCopiesCodeGenerated = 10
 
- Protected Types inherited from v8::internal::RegExpNode
enum  LimitResult { DONE , CONTINUE }
 
- Protected Attributes inherited from v8::internal::RegExpNode
RegExpNodereplacement_
 

Detailed Description

Definition at line 325 of file regexp-nodes.h.

Member Enumeration Documentation

◆ ActionType

Enumerator
SET_REGISTER_FOR_LOOP 
INCREMENT_REGISTER 
STORE_POSITION 
BEGIN_POSITIVE_SUBMATCH 
BEGIN_NEGATIVE_SUBMATCH 
POSITIVE_SUBMATCH_SUCCESS 
EMPTY_MATCH_CHECK 
CLEAR_CAPTURES 
MODIFY_FLAGS 

Definition at line 327 of file regexp-nodes.h.

Constructor & Destructor Documentation

◆ ActionNode()

v8::internal::ActionNode::ActionNode ( ActionType action_type,
RegExpNode * on_success )
inlineprotected

Definition at line 383 of file regexp-nodes.h.

Member Function Documentation

◆ Accept()

void v8::internal::ActionNode::Accept ( NodeVisitor * visitor)
overridevirtual

◆ action_type()

ActionType v8::internal::ActionNode::action_type ( ) const
inline

Definition at line 368 of file regexp-nodes.h.

Here is the caller graph for this function:

◆ AsActionNode()

ActionNode * v8::internal::ActionNode::AsActionNode ( )
inlineoverride

Definition at line 360 of file regexp-nodes.h.

Here is the caller graph for this function:

◆ BeginNegativeSubmatch()

ActionNode * v8::internal::ActionNode::BeginNegativeSubmatch ( int stack_pointer_reg,
int position_reg,
RegExpNode * on_success )
static

Definition at line 682 of file regexp-compiler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BeginPositiveSubmatch()

ActionNode * v8::internal::ActionNode::BeginPositiveSubmatch ( int stack_pointer_reg,
int position_reg,
RegExpNode * body,
ActionNode * success_node )
static

Definition at line 671 of file regexp-compiler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ClearCaptures()

ActionNode * v8::internal::ActionNode::ClearCaptures ( Interval range,
RegExpNode * on_success )
static

Definition at line 663 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ Emit()

void v8::internal::ActionNode::Emit ( RegExpCompiler * compiler,
Trace * trace )
overridevirtual

Implements v8::internal::RegExpNode.

Definition at line 3460 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ EmptyMatchCheck()

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

Definition at line 704 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ FillInBMInfo()

void v8::internal::ActionNode::FillInBMInfo ( Isolate * isolate,
int offset,
int budget,
BoyerMooreLookahead * bm,
bool not_at_start )
overridevirtual

Reimplemented from v8::internal::RegExpNode.

Definition at line 1401 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ flags()

RegExpFlags v8::internal::ActionNode::flags ( ) const
inline

Definition at line 373 of file regexp-nodes.h.

Here is the call graph for this function:

◆ GetQuickCheckDetails()

void v8::internal::ActionNode::GetQuickCheckDetails ( QuickCheckDetails * details,
RegExpCompiler * compiler,
int filled_in,
bool not_at_start )
overridevirtual

Implements v8::internal::RegExpNode.

Definition at line 1428 of file regexp-compiler.cc.

◆ GreedyLoopTextLength()

int v8::internal::ActionNode::GreedyLoopTextLength ( )
inlineoverridevirtual

Reimplemented from v8::internal::RegExpNode.

Definition at line 370 of file regexp-nodes.h.

◆ IncrementRegister()

ActionNode * v8::internal::ActionNode::IncrementRegister ( int reg,
RegExpNode * on_success )
static

Definition at line 647 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ ModifyFlags()

ActionNode * v8::internal::ActionNode::ModifyFlags ( RegExpFlags flags,
RegExpNode * on_success )
static

Definition at line 716 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ PositiveSubmatchSuccess()

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

Definition at line 691 of file regexp-compiler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetRegisterForLoop()

ActionNode * v8::internal::ActionNode::SetRegisterForLoop ( int reg,
int val,
RegExpNode * on_success )
static

Definition at line 638 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ StorePosition()

ActionNode * v8::internal::ActionNode::StorePosition ( int reg,
bool is_capture,
RegExpNode * on_success )
static

Definition at line 654 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ success_node()

ActionNode * v8::internal::ActionNode::success_node ( ) const
inline

Definition at line 377 of file regexp-nodes.h.

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ DotPrinterImpl

friend class DotPrinterImpl
friend

Definition at line 421 of file regexp-nodes.h.

Member Data Documentation

◆ action_type_

ActionType v8::internal::ActionNode::action_type_
private

Definition at line 420 of file regexp-nodes.h.

◆ clear_register_count

int v8::internal::ActionNode::clear_register_count

Definition at line 402 of file regexp-nodes.h.

◆ clear_register_from

int v8::internal::ActionNode::clear_register_from

Definition at line 403 of file regexp-nodes.h.

◆ current_position_register

int v8::internal::ActionNode::current_position_register

Definition at line 401 of file regexp-nodes.h.

◆ [union]

union { ... } v8::internal::ActionNode::data_

◆ flags

int v8::internal::ActionNode::flags

Definition at line 416 of file regexp-nodes.h.

◆ is_capture

bool v8::internal::ActionNode::is_capture

Definition at line 397 of file regexp-nodes.h.

◆ range_from

int v8::internal::ActionNode::range_from

Definition at line 412 of file regexp-nodes.h.

◆ range_to

int v8::internal::ActionNode::range_to

Definition at line 413 of file regexp-nodes.h.

◆ reg

int v8::internal::ActionNode::reg

Definition at line 389 of file regexp-nodes.h.

◆ repetition_limit

int v8::internal::ActionNode::repetition_limit

Definition at line 409 of file regexp-nodes.h.

◆ repetition_register

int v8::internal::ActionNode::repetition_register

Definition at line 408 of file regexp-nodes.h.

◆ stack_pointer_register

int v8::internal::ActionNode::stack_pointer_register

Definition at line 400 of file regexp-nodes.h.

◆ start_register

int v8::internal::ActionNode::start_register

Definition at line 407 of file regexp-nodes.h.

◆ success_node

ActionNode* v8::internal::ActionNode::success_node

Definition at line 404 of file regexp-nodes.h.

◆ [struct]

struct { ... } v8::internal::ActionNode::u_clear_captures

◆ [struct]

struct { ... } v8::internal::ActionNode::u_empty_match_check

◆ [struct]

struct { ... } v8::internal::ActionNode::u_increment_register

◆ [struct]

struct { ... } v8::internal::ActionNode::u_modify_flags

◆ [struct]

struct { ... } v8::internal::ActionNode::u_position_register

◆ [struct]

struct { ... } v8::internal::ActionNode::u_store_register

◆ [struct]

struct { ... } v8::internal::ActionNode::u_submatch

◆ value

int v8::internal::ActionNode::value

Definition at line 390 of file regexp-nodes.h.

◆ Zone

friend v8::internal::ActionNode::Zone
private

Definition at line 422 of file regexp-nodes.h.


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