v8
3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
|
#include <jsregexp.h>
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) | |
RegExpNode * | on_success () |
void | set_on_success (RegExpNode *node) |
virtual RegExpNode * | FilterASCII (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 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) |
Static Public Member Functions | |
static ActionNode * | SetRegister (int reg, int val, RegExpNode *on_success) |
static ActionNode * | IncrementRegister (int reg, RegExpNode *on_success) |
static ActionNode * | StorePosition (int reg, bool is_capture, RegExpNode *on_success) |
static ActionNode * | ClearCaptures (Interval range, RegExpNode *on_success) |
static ActionNode * | BeginSubmatch (int stack_pointer_reg, int position_reg, RegExpNode *on_success) |
static ActionNode * | PositiveSubmatchSuccess (int stack_pointer_reg, int restore_reg, int clear_capture_count, int clear_capture_from, RegExpNode *on_success) |
static ActionNode * | EmptyMatchCheck (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 | |
RegExpNode * | FilterSuccessor (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 | |
RegExpNode * | replacement_ |
Definition at line 745 of file jsregexp.h.
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.
|
virtual |
Implements RegExpNode.
|
static |
Definition at line 1594 of file jsregexp.cc.
References ActionNode::u_submatch, and RegExpNode::zone().
Referenced by RegExpAssertion::ToNode(), and RegExpLookahead::ToNode().
|
static |
Definition at line 1584 of file jsregexp.cc.
References Interval::from(), Interval::to(), ActionNode::u_clear_captures, and RegExpNode::zone().
Referenced by RegExpQuantifier::ToNode().
|
virtual |
Implements RegExpNode.
Definition at line 2361 of file jsregexp.cc.
References RegExpCompiler::kMaxRecursion.
|
virtual |
Implements RegExpNode.
Definition at line 4224 of file jsregexp.cc.
References Trace::add_action(), ASSERT, RegExpMacroAssembler::Backtrack(), Trace::backtrack(), ActionNode::BEGIN_SUBMATCH, RegExpMacroAssembler::Bind(), ActionNode::CLEAR_CAPTURES, ActionNode::clear_register_count, RegExpMacroAssembler::ClearRegisters(), RegExpNode::CONTINUE, Trace::cp_offset(), RegExpNode::DONE, RegExpNode::Emit(), ActionNode::EMPTY_MATCH_CHECK, Trace::Flush(), Trace::GetStoredPosition(), RegExpMacroAssembler::GoTo(), RegExpMacroAssembler::IfRegisterEqPos(), RegExpMacroAssembler::IfRegisterLT(), ActionNode::INCREMENT_REGISTER, Trace::is_trivial(), RegExpCompiler::kNoRegister, RegExpNode::LimitVersions(), RegExpCompiler::macro_assembler(), v8::internal::NULL, SeqRegExpNode::on_success(), ActionNode::POSITIVE_SUBMATCH_SUCCESS, RegExpMacroAssembler::ReadCurrentPositionFromRegister(), RegExpMacroAssembler::ReadStackPointerFromRegister(), Trace::set_backtrack(), ActionNode::SET_REGISTER, ActionNode::STORE_POSITION, UNREACHABLE, RegExpMacroAssembler::WriteCurrentPositionToRegister(), and RegExpMacroAssembler::WriteStackPointerToRegister().
|
static |
Definition at line 1620 of file jsregexp.cc.
References ActionNode::u_empty_match_check, and RegExpNode::zone().
Referenced by RegExpQuantifier::ToNode().
|
virtual |
Reimplemented from SeqRegExpNode.
Definition at line 2372 of file jsregexp.cc.
References BoyerMooreLookahead::SetRest().
|
inlinevirtual |
Implements RegExpNode.
Definition at line 779 of file jsregexp.h.
References RegExpNode::GetQuickCheckDetails(), and SeqRegExpNode::on_success().
|
inlinevirtual |
Reimplemented from RegExpNode.
Definition at line 793 of file jsregexp.h.
References RegExpNode::kNodeIsTooComplexForGreedyLoops.
|
static |
Definition at line 1565 of file jsregexp.cc.
References ActionNode::u_increment_register, and RegExpNode::zone().
Referenced by RegExpQuantifier::ToNode().
|
static |
Definition at line 1605 of file jsregexp.cc.
References ActionNode::u_submatch, and RegExpNode::zone().
Referenced by RegExpAssertion::ToNode(), and RegExpLookahead::ToNode().
|
static |
Definition at line 1554 of file jsregexp.cc.
References ActionNode::u_store_register, and RegExpNode::zone().
Referenced by RegExpQuantifier::ToNode().
|
static |
Definition at line 1573 of file jsregexp.cc.
References ActionNode::u_position_register, and RegExpNode::zone().
Referenced by RegExpQuantifier::ToNode(), and RegExpCapture::ToNode().
|
inline |
Definition at line 791 of file jsregexp.h.
|
friend |
Definition at line 828 of file jsregexp.h.
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 |
Referenced by ActionNode::ClearCaptures().
struct { ... } u_empty_match_check |
Referenced by ActionNode::EmptyMatchCheck().
struct { ... } u_increment_register |
Referenced by ActionNode::IncrementRegister().
struct { ... } u_position_register |
Referenced by ActionNode::StorePosition().
struct { ... } u_store_register |
Referenced by ActionNode::SetRegister().
struct { ... } u_submatch |
Referenced by ActionNode::BeginSubmatch(), and ActionNode::PositiveSubmatchSuccess().
int value |
Definition at line 799 of file jsregexp.h.