#include "config.h"
#include "pcre_internal.h"
#include <string.h>
#include "ASCIICType.h"
構成 | |
struct | CompileData |
マクロ定義 | |
#define | REQ_UNSET (-2) |
#define | REQ_NONE (-1) |
#define | BRASTACK_SIZE 200 |
列挙型 | |
enum | ErrorCode { ERR0, ERR1, ERR2, ERR3, ERR4, ERR5, ERR6, ERR7, ERR8, ERR9, ERR10, ERR11, ERR12, ERR13, ERR14, ERR15, ERR16, ERR17 } |
関数 | |
static const char * | errorText (ErrorCode code) |
static bool | compileBracket (int, int *, unsigned char **, const UChar **, const UChar *, ErrorCode *, int, int *, int *, CompileData &) |
static bool | bracketIsAnchored (const unsigned char *code) |
static bool | bracketNeedsLineStart (const unsigned char *code, unsigned captureMap, unsigned backrefMap) |
static int | bracketFindFirstAssertedCharacter (const unsigned char *code, bool inassert) |
static int | checkEscape (const UChar **ptrptr, const UChar *patternEnd, ErrorCode *errorcodeptr, int bracount, bool isclass) |
static bool | isCountedRepeat (const UChar *p, const UChar *patternEnd) |
static const UChar * | readRepeatCounts (const UChar *p, int *minp, int *maxp, ErrorCode *errorcodeptr) |
static const unsigned char * | firstSignificantOpcode (const unsigned char *code) |
static const unsigned char * | firstSignificantOpcodeSkippingAssertions (const unsigned char *code) |
static bool | getOthercaseRange (int *cptr, int d, int *ocptr, int *odptr) |
static int | encodeUTF8 (int cvalue, unsigned char *buffer) |
static bool | safelyCheckNextChar (const UChar *ptr, const UChar *patternEnd, UChar expected) |
static bool | compileBranch (int options, int *brackets, unsigned char **codeptr, const UChar **ptrptr, const UChar *patternEnd, ErrorCode *errorcodeptr, int *firstbyteptr, int *reqbyteptr, CompileData &cd) |
static bool | branchIsAnchored (const unsigned char *code) |
static bool | branchNeedsLineStart (const unsigned char *code, unsigned captureMap, unsigned backrefMap) |
static int | branchFindFirstAssertedCharacter (const unsigned char *code, bool inassert) |
static int | multiplyWithOverflowCheck (int a, int b) |
static int | calculateCompiledPatternLength (const UChar *pattern, int patternLength, JSRegExpIgnoreCaseOption ignoreCase, CompileData &cd, ErrorCode &errorcode) |
static JSRegExp * | returnError (ErrorCode errorcode, const char **errorptr) |
JSRegExp * | jsRegExpCompile (const UChar *pattern, int patternLength, JSRegExpIgnoreCaseOption ignoreCase, JSRegExpMultilineOption multiline, unsigned *numSubpatterns, const char **errorptr, malloc_t *allocate_function, free_t *free_function) |
void | jsRegExpFree (JSRegExp *re, free_t *free_function) |
変数 | |
static const short | escapes [] |
#define BRASTACK_SIZE 200 |
pcre_compile.cpp の 66 行で定義されています。
#define REQ_NONE (-1) |
pcre_compile.cpp の 54 行で定義されています。
#define REQ_UNSET (-2) |
pcre_compile.cpp の 53 行で定義されています。
参照元 compileBranch().
enum ErrorCode |
ERR0 | |
ERR1 | |
ERR2 | |
ERR3 | |
ERR4 | |
ERR5 | |
ERR6 | |
ERR7 | |
ERR8 | |
ERR9 | |
ERR10 | |
ERR11 | |
ERR12 | |
ERR13 | |
ERR14 | |
ERR15 | |
ERR16 | |
ERR17 |
pcre_compile.cpp の 89 行で定義されています。
static int bracketFindFirstAssertedCharacter | ( | const unsigned char * | code, | |
bool | inassert | |||
) | [static] |
pcre_compile.cpp の 1973 行で定義されています。
参照先 branchFindFirstAssertedCharacter(), getLinkValue(), と LINK_SIZE.
参照元 branchFindFirstAssertedCharacter(), と jsRegExpCompile().
static bool bracketIsAnchored | ( | const unsigned char * | code | ) | [static] |
pcre_compile.cpp の 1851 行で定義されています。
参照先 branchIsAnchored(), getLinkValue(), と LINK_SIZE.
参照元 branchIsAnchored(), と jsRegExpCompile().
static bool bracketNeedsLineStart | ( | const unsigned char * | code, | |
unsigned | captureMap, | |||
unsigned | backrefMap | |||
) | [static] |
pcre_compile.cpp の 1911 行で定義されています。
static int branchFindFirstAssertedCharacter | ( | const unsigned char * | code, | |
bool | inassert | |||
) | [static] |
static bool branchIsAnchored | ( | const unsigned char * | code | ) | [static] |
pcre_compile.cpp の 1838 行で定義されています。
参照先 bracketIsAnchored(), と firstSignificantOpcode().
参照元 bracketIsAnchored(), と jsRegExpCompile().
static bool branchNeedsLineStart | ( | const unsigned char * | code, | |
unsigned | captureMap, | |||
unsigned | backrefMap | |||
) | [static] |
pcre_compile.cpp の 1883 行で定義されています。
参照先 bracketNeedsLineStart(), EXTRACT_BASIC_MAX, firstSignificantOpcode(), get2ByteValue(), と LINK_SIZE.
static int calculateCompiledPatternLength | ( | const UChar * | pattern, | |
int | patternLength, | |||
JSRegExpIgnoreCaseOption | ignoreCase, | |||
CompileData & | cd, | |||
ErrorCode & | errorcode | |||
) | [static] |
pcre_compile.cpp の 1998 行で定義されています。
参照先 CompileData::backrefMap, v8::internal::cc, checkEscape(), encodeUTF8(), ESC_REF, EXTRACT_BASIC_MAX, getOthercaseRange(), isCountedRepeat(), kjs_pcre_utf8_table1, LINK_SIZE, MAX_PATTERN_SIZE, multiplyWithOverflowCheck(), CompileData::needOuterBracket, CompileData::numCapturingBrackets, readRepeatCounts(), safelyCheckNextChar(), と CompileData::top_backref.
参照元 jsRegExpCompile().
static int checkEscape | ( | const UChar ** | ptrptr, | |
const UChar * | patternEnd, | |||
ErrorCode * | errorcodeptr, | |||
int | bracount, | |||
bool | isclass | |||
) | [static] |
pcre_compile.cpp の 177 行で定義されています。
参照先 v8::internal::cc, ESC_B, ESC_b, ESC_REF, escapes, isASCIIDigit(), isASCIIHexDigit(), と toASCIIUpper().
static bool compileBracket | ( | int | options, | |
int * | brackets, | |||
unsigned char ** | codeptr, | |||
const UChar ** | ptrptr, | |||
const UChar * | patternEnd, | |||
ErrorCode * | errorcodeptr, | |||
int | skipbytes, | |||
int * | firstbyteptr, | |||
int * | reqbyteptr, | |||
CompileData & | cd | |||
) | [static] |
pcre_compile.cpp の 1707 行で定義されています。
参照先 ASSERT_NOT_REACHED, v8::internal::code(), compileBranch(), getLinkValueAllowZero(), LINK_SIZE, putLinkValue(), putLinkValueAllowZero(), と REQ_VARY.
参照元 compileBranch(), と jsRegExpCompile().
static bool compileBranch | ( | int | options, | |
int * | brackets, | |||
unsigned char ** | codeptr, | |||
const UChar ** | ptrptr, | |||
const UChar * | patternEnd, | |||
ErrorCode * | errorcodeptr, | |||
int * | firstbyteptr, | |||
int * | reqbyteptr, | |||
CompileData & | cd | |||
) | [static] |
pcre_compile.cpp の 554 行で定義されています。
参照先 advanceToEndOfBracket(), cbit_digit, cbit_space, cbit_word, v8::internal::cc, checkEscape(), classBitmapForChar(), v8::internal::code(), compileBracket(), encodeUTF8(), ESC_b, ESC_D, ESC_d, ESC_REF, ESC_S, ESC_s, ESC_W, ESC_w, EXTRACT_BASIC_MAX, flipCase(), getLinkValueAllowZero(), getOthercaseRange(), IgnoreCaseOption, isCountedRepeat(), kjs_pcre_ucp_othercase(), LINK_SIZE, MatchAcrossMultipleLinesOption, NULL, CompileData::numCapturingBrackets, put2ByteValue(), put2ByteValueAndAdvance(), putLinkValue(), putLinkValueAllowZeroAndAdvance(), putLinkValueAndAdvance(), readRepeatCounts(), REQ_IGNORE_CASE, REQ_UNSET, REQ_VARY, CompileData::req_varyopt, safelyCheckNextChar(), と XCL_NOT.
参照元 compileBracket(), と jsRegExpCompile().
static int encodeUTF8 | ( | int | cvalue, | |
unsigned char * | buffer | |||
) | [static] |
pcre_compile.cpp の 513 行で定義されています。
static const char* errorText | ( | ErrorCode | code | ) | [static] |
pcre_compile.cpp の 97 行で定義されています。
参照元 returnError().
static const unsigned char* firstSignificantOpcode | ( | const unsigned char * | code | ) | [static] |
pcre_compile.cpp の 426 行で定義されています。
static const unsigned char* firstSignificantOpcodeSkippingAssertions | ( | const unsigned char * | code | ) | [static] |
pcre_compile.cpp の 433 行で定義されています。
static bool getOthercaseRange | ( | int * | cptr, | |
int | d, | |||
int * | ocptr, | |||
int * | odptr | |||
) | [static] |
pcre_compile.cpp の 472 行で定義されています。
pcre_compile.cpp の 326 行で定義されています。
参照先 isASCIIDigit().
JSRegExp* jsRegExpCompile | ( | const UChar * | pattern, | |
int | patternLength, | |||
JSRegExpIgnoreCaseOption | ignoreCase, | |||
JSRegExpMultilineOption | multiline, | |||
unsigned * | numSubpatterns, | |||
const char ** | errorptr, | |||
malloc_t * | allocate_function, | |||
free_t * | free_function | |||
) |
pcre_compile.cpp の 2540 行で定義されています。
参照先 ASSERT, CompileData::backrefMap, bracketFindFirstAssertedCharacter(), bracketIsAnchored(), bracketNeedsLineStart(), branchFindFirstAssertedCharacter(), branchIsAnchored(), branchNeedsLineStart(), calculateCompiledPatternLength(), v8::internal::code(), compileBracket(), compileBranch(), ERR0, ERR13, ERR16, flipCase(), IgnoreCaseOption, IsAnchoredOption, MatchAcrossMultipleLinesOption, MAX_PATTERN_SIZE, CompileData::needOuterBracket, NULL, REQ_IGNORE_CASE, REQ_VARY, returnError(), CompileData::top_backref, と UseMultiLineFirstByteOptimizationOption.
pcre_compile.cpp の 2670 行で定義されています。
static int multiplyWithOverflowCheck | ( | int | a, | |
int | b | |||
) | [inline, static] |
static const UChar* readRepeatCounts | ( | const UChar * | p, | |
int * | minp, | |||
int * | maxp, | |||
ErrorCode * | errorcodeptr | |||
) | [static] |
pcre_compile.cpp の 369 行で定義されています。
参照先 isASCIIDigit().
static bool safelyCheckNextChar | ( | const UChar * | ptr, | |
const UChar * | patternEnd, | |||
UChar | expected | |||
) | [inline, static] |
pcre_compile.cpp の 548 行で定義されています。
const short escapes[] [static] |
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ':', ';', '<', '=', '>', '?', '@', 0, -ESC_B, 0, -ESC_D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -ESC_S, 0, 0, 0, -ESC_W, 0, 0, 0, '[', '\\', ']', '^', '_', '`', 7, -ESC_b, 0, -ESC_d, 0, '\f', 0, 0, 0, 0, 0, 0, 0, '\n', 0, 0, 0, '\r', -ESC_s, '\t', 0, '\v', -ESC_w, 0, 0, 0 }
pcre_compile.cpp の 73 行で定義されています。
参照元 checkEscape().