RegExp refactoring and improvements
Move RegExp bytecode functions to a separate file. Optimize bytecode lenght on character matching. Implement a basic RegExp cache to optimize memory usage on duplicated RegExp in JS files. Also fix minor style issues and add missing comments. Improve existing comments. JerryScript-DCO-1.0-Signed-off-by: László Langó llango.u-szeged@partner.samsung.com
This commit is contained in:
@@ -34,28 +34,28 @@
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
RE_TOK_EOF, /* EOF */
|
||||
RE_TOK_BACKREFERENCE, /* \[0..9] */
|
||||
RE_TOK_CHAR, /* any character */
|
||||
RE_TOK_ALTERNATIVE, /* | */
|
||||
RE_TOK_ASSERT_START, /* ^ */
|
||||
RE_TOK_ASSERT_END, /* $ */
|
||||
RE_TOK_PERIOD, /* . */
|
||||
RE_TOK_START_CAPTURE_GROUP, /* ( */
|
||||
RE_TOK_START_NON_CAPTURE_GROUP, /* (?: */
|
||||
RE_TOK_END_GROUP, /* ')' */
|
||||
RE_TOK_ASSERT_START_POS_LOOKAHEAD, /* (?= */
|
||||
RE_TOK_ASSERT_START_NEG_LOOKAHEAD, /* (?! */
|
||||
RE_TOK_ASSERT_WORD_BOUNDARY, /* \b */
|
||||
RE_TOK_ASSERT_NOT_WORD_BOUNDARY, /* \B */
|
||||
RE_TOK_DIGIT, /* \d */
|
||||
RE_TOK_NOT_DIGIT, /* \D */
|
||||
RE_TOK_WHITE, /* \s */
|
||||
RE_TOK_NOT_WHITE, /* \S */
|
||||
RE_TOK_WORD_CHAR, /* \w */
|
||||
RE_TOK_NOT_WORD_CHAR, /* \W */
|
||||
RE_TOK_START_CHAR_CLASS, /* [ ] */
|
||||
RE_TOK_START_INV_CHAR_CLASS, /* [^ ] */
|
||||
RE_TOK_EOF, /**< EOF */
|
||||
RE_TOK_BACKREFERENCE, /**< \[0..9] */
|
||||
RE_TOK_CHAR, /**< any character */
|
||||
RE_TOK_ALTERNATIVE, /**< | */
|
||||
RE_TOK_ASSERT_START, /**< ^ */
|
||||
RE_TOK_ASSERT_END, /**< $ */
|
||||
RE_TOK_PERIOD, /**< . */
|
||||
RE_TOK_START_CAPTURE_GROUP, /**< ( */
|
||||
RE_TOK_START_NON_CAPTURE_GROUP, /**< (?: */
|
||||
RE_TOK_END_GROUP, /**< ')' */
|
||||
RE_TOK_ASSERT_START_POS_LOOKAHEAD, /**< (?= */
|
||||
RE_TOK_ASSERT_START_NEG_LOOKAHEAD, /**< (?! */
|
||||
RE_TOK_ASSERT_WORD_BOUNDARY, /**< \b */
|
||||
RE_TOK_ASSERT_NOT_WORD_BOUNDARY, /**< \B */
|
||||
RE_TOK_DIGIT, /**< \d */
|
||||
RE_TOK_NOT_DIGIT, /**< \D */
|
||||
RE_TOK_WHITE, /**< \s */
|
||||
RE_TOK_NOT_WHITE, /**< \S */
|
||||
RE_TOK_WORD_CHAR, /**< \w */
|
||||
RE_TOK_NOT_WORD_CHAR, /**< \W */
|
||||
RE_TOK_START_CHAR_CLASS, /**< [ ] */
|
||||
RE_TOK_START_INV_CHAR_CLASS, /**< [^ ] */
|
||||
} re_token_type_t;
|
||||
|
||||
/**
|
||||
@@ -68,7 +68,7 @@ typedef enum
|
||||
/**
|
||||
* RegExp constant of infinite
|
||||
*/
|
||||
#define RE_ITERATOR_INFINITE ((uint32_t)-1)
|
||||
#define RE_ITERATOR_INFINITE ((uint32_t) - 1)
|
||||
|
||||
/**
|
||||
* Maximum number of decimal escape digits
|
||||
|
||||
Reference in New Issue
Block a user