#include "dkcStream.h"
#include "dkcOSIndependent.h"
dkcRegex.hのインクルード依存関係図
このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。
構成 | |
struct | dkc_Replace |
struct | dkcRegularExpression |
正規表現オブジェクト [詳細] | |
型定義 | |
typedef dkc_Replace | DKC_REPLACE |
typedef wchar_t | DKC_UNICODE |
typedef dkcRegularExpression | DKC_Regular_EXPRESSION |
正規表現オブジェクト | |
typedef dkcRegularExpression | DKC_REX |
正規表現オブジェクト | |
typedef dkcRegularExpression | DKC_REGEX |
正規表現オブジェクト | |
列挙型 | |
enum | edkcRegToken { R_Char, R_Any, R_Lcl, R_Rcl, R_Ncl, R_Range, R_Lbr, R_Rbr, R_Bar, R_Star, R_Plus, R_Quest, R_End } |
文字の種類 [詳細] | |
enum | edkcRegType { N_Char, N_Class, N_Concat, N_Or, N_Closure, N_Closure1, N_01, N_Empty } |
構文木のノードに振られる値の種類 [詳細] | |
関数 | |
DKC_EXTERN DKC_REPLACE *WINAPI | dkcAllocReplace () |
DKC_EXTERN int WINAPI | dkcFreeReplace (DKC_REPLACE **) |
DKC_EXTERN int WINAPI | dkcReplaceRun (const BYTE *src, size_t srcsize, const BYTE *target_data, size_t target_data_size, const BYTE *replace_data, size_t replace_data_size) |
DKC_EXTERN DKC_REGEX *WINAPI | dkcAllocRegex (const DKC_UNICODE *key, BOOL caseS, BOOL down) |
DKC_EXTERN int WINAPI | dkcFreeRegex (DKC_REGEX **) |
DKC_EXTERN BOOL WINAPI | dkcRegexSearch (DKC_REGEX *p, const DKC_UNICODE *str, ULONG len, ULONG stt, ULONG *mbg, ULONG *med) |
DKC_EXTERN BOOL WINAPI | dkcRegularExpressionSearch (const DKC_UNICODE *key, BOOL caseS, BOOL down, const DKC_UNICODE *str, ULONG len, ULONG stt, ULONG *mbg, ULONG *med) |
検索を行う | |
DKC_EXTERN BOOL WINAPI | dkcRegularExpressionMatch (const DKC_UNICODE *pat, const DKC_UNICODE *str, BOOL caseS) |
Gp.Search |
dkcRegex.cおよびdkcRegex.hはGreenPadの実装をC言語に移植しています。 dkcRegex.h で定義されています。
|
正規表現オブジェクト
|
|
正規表現オブジェクト
|
|
|
|
正規表現オブジェクト
|
|
dkcRegex.h の 25 行で定義されています。 |
|
文字の種類
dkcRegex.h の 39 行で定義されています。 00040 { 00042 R_Char, 00044 R_Any, 00046 R_Lcl, 00048 R_Rcl, 00050 R_Ncl, 00052 R_Range, 00054 R_Lbr, 00056 R_Rbr, 00058 R_Bar, 00060 R_Star, 00062 R_Plus, 00064 R_Quest, 00066 R_End, 00067 };
|
|
構文木のノードに振られる値の種類
dkcRegex.h の 71 行で定義されています。 00072 { 00073 N_Char, // 普通の文字 (ch) 00074 N_Class, // [...] など (cls) 00075 N_Concat, // 連接 (left, right) 00076 N_Or, // | (left, right) 00077 N_Closure, // * (left) 00078 N_Closure1, // + (left) 00079 N_01, // ? (left) 00080 N_Empty // 空 (--) 00081 };
|
|
|
|
dkcRegex.c の 74 行で定義されています。 参照先 dkcAllocate(), dkcAllocStream(), dkcFree(), dkcFreeStream(), edkcStreamInitMemory, dkc_Replace::mStream, と NULL. 00074 { 00075 00076 DKC_REPLACE *p = dkcAllocate(sizeof(DKC_REPLACE)); 00077 if(NULL==p){ 00078 return NULL; 00079 } 00080 p->mStream = dkcAllocStream(edkcStreamInitMemory,NULL,5012,NULL,NULL); 00081 if(NULL==p->mStream){ 00082 goto Error; 00083 } 00084 return p; 00085 Error: 00086 dkcFreeStream(&(p->mStream)); 00087 dkcFree((void **)&p); 00088 return NULL; 00089 }
|
|
dkcRegex.c の 993 行で定義されています。 参照先 dkcFree(), と free_RegNFA(). 参照元 dkcRegularExpressionSearch(). 00993 { 00994 free_RegNFA((*p)->re_); 00995 return dkcFree(p); 00996 }
|
|
dkcRegex.c の 92 行で定義されています。 参照先 dkcFree(), dkcFreeStream(), と NULL. 00092 { 00093 if(NULL==pp){ 00094 return edk_ArgumentException; 00095 } 00096 dkcFreeStream(&(*pp)->mStream); 00097 return dkcFree((void **)pp); 00098 }
|
|
|
|
Gp.Search 超簡易正規表現マッチング関数。 patとstr全体がマッチするならtrue、ダメならfalseを返す dkcRegex.c の 1062 行で定義されています。 参照先 FALSE, my_lstrlenW, RegNFA_Construct(), RegNFA_Destruct(), と RegNFA_match_a4(). 01063 { 01064 int len = my_lstrlenW(str); 01065 RegNFA re; 01066 BOOL r; 01067 if(FALSE==RegNFA_Construct(&re,pat)) 01068 return FALSE; 01069 01070 r = (len == RegNFA_match_a4(&re, str, len, caseS )); 01071 01072 RegNFA_Destruct(&re); 01073 01074 return r; 01075 }
|
|
検索を行う
|
|
dkcRegex.c の 101 行で定義されています。
|