![]() |
v8
3.11.10(node0.8.26)
V8 is Google's open source JavaScript engine
|
#include <parser.h>
Public Member Functions | |
RegExpParser (FlatStringReader *in, Handle< String > *error, bool multiline_mode) | |
RegExpTree * | ParsePattern () |
RegExpTree * | ParseDisjunction () |
RegExpTree * | ParseGroup () |
RegExpTree * | ParseCharacterClass () |
bool | ParseIntervalQuantifier (int *min_out, int *max_out) |
uc32 | ParseClassCharacterEscape () |
bool | ParseHexEscape (int length, uc32 *value) |
uc32 | ParseOctalLiteral () |
bool | ParseBackReferenceIndex (int *index_out) |
CharacterRange | ParseClassAtom (uc16 *char_class) |
RegExpTree * | ReportError (Vector< const char > message) |
void | Advance () |
void | Advance (int dist) |
void | Reset (int pos) |
bool | simple () |
bool | contains_anchor () |
void | set_contains_anchor () |
int | captures_started () |
int | position () |
bool | failed () |
Static Public Member Functions | |
static bool | ParseRegExp (FlatStringReader *input, bool multiline, RegExpCompileData *result) |
Static Public Attributes | |
static const int | kMaxCaptures = 1 << 16 |
static const uc32 | kEndMarker = (1 << 21) |
RegExpParser | ( | FlatStringReader * | in, |
Handle< String > * | error, | ||
bool | multiline_mode | ||
) |
Definition at line 5070 of file parser.cc.
References RegExpParser::Advance().
void Advance | ( | ) |
Definition at line 5099 of file parser.cc.
References check(), v8::internal::CStrVector(), FlatStringReader::Get(), RegExpParser::kEndMarker, Isolate::kStackOverflowMessage, and RegExpParser::ReportError().
Referenced by RegExpParser::Advance(), RegExpParser::ParseBackReferenceIndex(), RegExpParser::ParseCharacterClass(), RegExpParser::ParseClassAtom(), RegExpParser::ParseClassCharacterEscape(), RegExpParser::ParseDisjunction(), RegExpParser::ParseHexEscape(), RegExpParser::ParseIntervalQuantifier(), RegExpParser::ParseOctalLiteral(), RegExpParser::RegExpParser(), and RegExpParser::Reset().
void Advance | ( | int | dist | ) |
Definition at line 5123 of file parser.cc.
References RegExpParser::Advance().
|
inline |
Definition at line 351 of file parser.h.
References v8::internal::NULL.
Referenced by RegExpParser::ParseBackReferenceIndex(), RegExpParser::ParseDisjunction(), and RegExpParser::ParseRegExp().
|
inline |
Definition at line 349 of file parser.h.
Referenced by RegExpParser::ParseRegExp().
|
inline |
Definition at line 353 of file parser.h.
Referenced by RegExpParser::ParseRegExp().
bool ParseBackReferenceIndex | ( | int * | index_out | ) |
Definition at line 5545 of file parser.cc.
References RegExpParser::Advance(), ASSERT, ASSERT_EQ, RegExpParser::captures_started(), v8::internal::IsDecimalDigit(), RegExpParser::kMaxCaptures, RegExpParser::position(), and RegExpParser::Reset().
Referenced by RegExpParser::ParseDisjunction().
RegExpTree * ParseCharacterClass | ( | ) |
Definition at line 5810 of file parser.cc.
References List< T, ZoneAllocationPolicy >::Add(), RegExpParser::Advance(), ASSERT_EQ, CHECK_FAILED, v8::internal::CStrVector(), CharacterRange::Everything(), CharacterRange::from(), RegExpParser::kEndMarker, RegExpParser::ParseClassAtom(), CharacterRange::Range(), RegExpParser::ReportError(), CharacterRange::Singleton(), and CharacterRange::to().
Referenced by RegExpParser::ParseDisjunction().
CharacterRange ParseClassAtom | ( | uc16 * | char_class | ) |
Definition at line 5770 of file parser.cc.
References RegExpParser::Advance(), ASSERT_EQ, CHECK_FAILED, v8::internal::CStrVector(), RegExpParser::kEndMarker, RegExpParser::ParseClassCharacterEscape(), RegExpParser::ReportError(), and CharacterRange::Singleton().
Referenced by RegExpParser::ParseCharacterClass().
uc32 ParseClassCharacterEscape | ( | ) |
Definition at line 5689 of file parser.cc.
References RegExpParser::Advance(), ASSERT, RegExpParser::ParseHexEscape(), and RegExpParser::ParseOctalLiteral().
Referenced by RegExpParser::ParseClassAtom().
RegExpTree * ParseDisjunction | ( | ) |
Definition at line 5167 of file parser.cc.
References RegExpBuilder::AddAssertion(), RegExpBuilder::AddAtom(), RegExpBuilder::AddCharacter(), CharacterRange::AddClassEscape(), RegExpBuilder::AddEmpty(), RegExpBuilder::AddQuantifierToAtom(), RegExpParser::Advance(), ASSERT, ASSERT_EQ, ASSERT_NE, RegExpAssertion::BOUNDARY, RegExpParser::captures_started(), CHECK_FAILED, v8::internal::CStrVector(), RegExpAssertion::END_OF_INPUT, RegExpAssertion::END_OF_LINE, RegExpQuantifier::GREEDY, RegExpParser::kEndMarker, RegExpTree::kInfinity, RegExpParser::kMaxCaptures, RegExpBuilder::NewAlternative(), RegExpAssertion::NON_BOUNDARY, RegExpQuantifier::NON_GREEDY, v8::internal::NULL, RegExpParser::ParseBackReferenceIndex(), RegExpParser::ParseCharacterClass(), RegExpParser::ParseHexEscape(), RegExpParser::ParseIntervalQuantifier(), RegExpParser::ParseOctalLiteral(), RegExpQuantifier::POSSESSIVE, RegExpParser::ReportError(), RegExpParser::set_contains_anchor(), RegExpAssertion::START_OF_INPUT, RegExpAssertion::START_OF_LINE, and RegExpBuilder::ToRegExp().
Referenced by RegExpParser::ParsePattern().
RegExpTree* ParseGroup | ( | ) |
bool ParseHexEscape | ( | int | length, |
uc32 * | value | ||
) |
Definition at line 5667 of file parser.cc.
References RegExpParser::Advance(), v8::internal::HexValue(), RegExpParser::position(), and RegExpParser::Reset().
Referenced by RegExpParser::ParseClassCharacterEscape(), and RegExpParser::ParseDisjunction().
bool ParseIntervalQuantifier | ( | int * | min_out, |
int * | max_out | ||
) |
Definition at line 5589 of file parser.cc.
References RegExpParser::Advance(), ASSERT_EQ, v8::internal::IsDecimalDigit(), RegExpTree::kInfinity, RegExpParser::position(), and RegExpParser::Reset().
Referenced by RegExpParser::ParseDisjunction().
uc32 ParseOctalLiteral | ( | ) |
Definition at line 5649 of file parser.cc.
References RegExpParser::Advance(), and ASSERT.
Referenced by RegExpParser::ParseClassCharacterEscape(), and RegExpParser::ParseDisjunction().
RegExpTree * ParsePattern | ( | ) |
Definition at line 5145 of file parser.cc.
References ASSERT, CHECK_FAILED, FlatStringReader::length(), and RegExpParser::ParseDisjunction().
Referenced by RegExpParser::ParseRegExp().
|
static |
Definition at line 6004 of file parser.cc.
References ASSERT, RegExpCompileData::capture_count, RegExpParser::captures_started(), RegExpParser::contains_anchor(), RegExpCompileData::contains_anchor, RegExpCompileData::error, RegExpParser::failed(), Handle< T >::is_null(), v8::internal::NULL, RegExpParser::ParsePattern(), RegExpParser::simple(), RegExpCompileData::simple, and RegExpCompileData::tree.
Referenced by RegExpImpl::Compile().
|
inline |
Definition at line 352 of file parser.h.
Referenced by RegExpParser::ParseBackReferenceIndex(), RegExpParser::ParseHexEscape(), and RegExpParser::ParseIntervalQuantifier().
RegExpTree * ReportError | ( | Vector< const char > | message | ) |
Definition at line 5133 of file parser.cc.
References RegExpParser::kEndMarker, FlatStringReader::length(), v8::internal::NOT_TENURED, and v8::internal::NULL.
Referenced by RegExpParser::Advance(), RegExpParser::ParseCharacterClass(), RegExpParser::ParseClassAtom(), and RegExpParser::ParseDisjunction().
void Reset | ( | int | pos | ) |
Definition at line 5117 of file parser.cc.
References RegExpParser::Advance().
Referenced by RegExpParser::ParseBackReferenceIndex(), RegExpParser::ParseHexEscape(), and RegExpParser::ParseIntervalQuantifier().
|
inline |
Definition at line 350 of file parser.h.
Referenced by RegExpParser::ParseDisjunction().
bool simple | ( | ) |
Definition at line 5129 of file parser.cc.
Referenced by RegExpParser::ParseRegExp().
|
static |
Definition at line 356 of file parser.h.
Referenced by RegExpParser::Advance(), RegExpParser::ParseCharacterClass(), RegExpParser::ParseClassAtom(), RegExpParser::ParseDisjunction(), and RegExpParser::ReportError().
|
static |
Definition at line 355 of file parser.h.
Referenced by RegExpParser::ParseBackReferenceIndex(), and RegExpParser::ParseDisjunction().