構成 | マクロ定義 | 列挙型 | 関数 | 変数

src/third_party/jscre/pcre_compile.cpp

#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 UCharreadRepeatCounts (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 JSRegExpreturnError (ErrorCode errorcode, const char **errorptr)
JSRegExpjsRegExpCompile (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.cpp66 行で定義されています。

#define REQ_NONE   (-1)

pcre_compile.cpp54 行で定義されています。

#define REQ_UNSET   (-2)

pcre_compile.cpp53 行で定義されています。

参照元 compileBranch().


列挙型

enum ErrorCode
列挙型の値:
ERR0 
ERR1 
ERR2 
ERR3 
ERR4 
ERR5 
ERR6 
ERR7 
ERR8 
ERR9 
ERR10 
ERR11 
ERR12 
ERR13 
ERR14 
ERR15 
ERR16 
ERR17 

pcre_compile.cpp89 行で定義されています。


関数

static int bracketFindFirstAssertedCharacter ( const unsigned char *  code,
bool  inassert 
) [static]
static bool bracketIsAnchored ( const unsigned char *  code  )  [static]

pcre_compile.cpp1851 行で定義されています。

参照先 branchIsAnchored(), getLinkValue(), と LINK_SIZE.

参照元 branchIsAnchored(), と jsRegExpCompile().

static bool bracketNeedsLineStart ( const unsigned char *  code,
unsigned  captureMap,
unsigned  backrefMap 
) [static]

pcre_compile.cpp1911 行で定義されています。

参照先 branchNeedsLineStart(), getLinkValue(), と LINK_SIZE.

参照元 branchNeedsLineStart(), と jsRegExpCompile().

static int branchFindFirstAssertedCharacter ( const unsigned char *  code,
bool  inassert 
) [static]
static bool branchIsAnchored ( const unsigned char *  code  )  [static]

pcre_compile.cpp1838 行で定義されています。

参照先 bracketIsAnchored(), と firstSignificantOpcode().

参照元 bracketIsAnchored(), と jsRegExpCompile().

static bool branchNeedsLineStart ( const unsigned char *  code,
unsigned  captureMap,
unsigned  backrefMap 
) [static]
static int calculateCompiledPatternLength ( const UChar pattern,
int  patternLength,
JSRegExpIgnoreCaseOption  ignoreCase,
CompileData cd,
ErrorCode errorcode 
) [static]
static int checkEscape ( const UChar **  ptrptr,
const UChar patternEnd,
ErrorCode errorcodeptr,
int  bracount,
bool  isclass 
) [static]
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]
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]
static int encodeUTF8 ( int  cvalue,
unsigned char *  buffer 
) [static]

pcre_compile.cpp513 行で定義されています。

参照先 kjs_pcre_utf8_table1, と kjs_pcre_utf8_table2.

参照元 calculateCompiledPatternLength(), と compileBranch().

static const char* errorText ( ErrorCode  code  )  [static]

pcre_compile.cpp97 行で定義されています。

参照元 returnError().

static const unsigned char* firstSignificantOpcode ( const unsigned char *  code  )  [static]

pcre_compile.cpp426 行で定義されています。

参照元 branchIsAnchored(), と branchNeedsLineStart().

static const unsigned char* firstSignificantOpcodeSkippingAssertions ( const unsigned char *  code  )  [static]

pcre_compile.cpp433 行で定義されています。

参照先 advanceToEndOfBracket().

参照元 branchFindFirstAssertedCharacter().

static bool getOthercaseRange ( int *  cptr,
int  d,
int *  ocptr,
int *  odptr 
) [static]

pcre_compile.cpp472 行で定義されています。

参照先 kjs_pcre_ucp_othercase().

参照元 calculateCompiledPatternLength(), と compileBranch().

static bool isCountedRepeat ( const UChar p,
const UChar patternEnd 
) [static]

pcre_compile.cpp326 行で定義されています。

参照先 isASCIIDigit().

参照元 calculateCompiledPatternLength(), と compileBranch().

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 
)

pcre_compile.cpp2670 行で定義されています。

static int multiplyWithOverflowCheck ( int  a,
int  b 
) [inline, static]

pcre_compile.cpp1989 行で定義されています。

参照先 MAX_PATTERN_SIZE.

参照元 calculateCompiledPatternLength().

static const UChar* readRepeatCounts ( const UChar p,
int *  minp,
int *  maxp,
ErrorCode errorcodeptr 
) [static]

pcre_compile.cpp369 行で定義されています。

参照先 isASCIIDigit().

参照元 calculateCompiledPatternLength(), と compileBranch().

static JSRegExp* returnError ( ErrorCode  errorcode,
const char **  errorptr 
) [inline, static]

pcre_compile.cpp2534 行で定義されています。

参照先 errorText().

参照元 jsRegExpCompile().

static bool safelyCheckNextChar ( const UChar ptr,
const UChar patternEnd,
UChar  expected 
) [inline, static]

pcre_compile.cpp548 行で定義されています。

参照元 calculateCompiledPatternLength(), と compileBranch().


変数

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.cpp73 行で定義されています。

参照元 checkEscape().

 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義