|
|
@ -30,8 +30,8 @@ |
|
|
|
* Supports: |
|
|
|
* --------- |
|
|
|
* '.' Dot, matches any character |
|
|
|
* '^' Start anchor, matches beginning of string |
|
|
|
* '$' End anchor, matches end of string |
|
|
|
* '^' Start anchor, matches beginning of string -- NOTE: currently disabled (checking for full matches anyway) |
|
|
|
* '$' End anchor, matches end of string -- NOTE: currently disabled (checking for full matches anyway) |
|
|
|
* '*' Asterisk, match zero or more (greedy) |
|
|
|
* '+' Plus, match one or more (greedy) |
|
|
|
* '?' Question, match zero or one (non-greedy) |
|
|
@ -154,8 +154,8 @@ re_t re_compile(const char* pattern) |
|
|
|
switch (c) |
|
|
|
{ |
|
|
|
/* Meta-characters: */ |
|
|
|
case '^': { re_compiled[j].type = BEGIN; } break; |
|
|
|
case '$': { re_compiled[j].type = END; } break; |
|
|
|
// case '^': { re_compiled[j].type = BEGIN; } break; <-- disabled (always full matches)
|
|
|
|
// case '$': { re_compiled[j].type = END; } break; <-- disabled (always full matches)
|
|
|
|
case '.': { re_compiled[j].type = DOT; } break; |
|
|
|
case '*': { re_compiled[j].type = STAR; } break; |
|
|
|
case '+': { re_compiled[j].type = PLUS; } break; |
|
|
@ -180,7 +180,7 @@ re_t re_compile(const char* pattern) |
|
|
|
case 's': { re_compiled[j].type = WHITESPACE; } break; |
|
|
|
case 'S': { re_compiled[j].type = NOT_WHITESPACE; } break; |
|
|
|
|
|
|
|
/* Escaped character, e.g. '.' or '$' */ |
|
|
|
/* Escaped character, e.g. '.' */ |
|
|
|
default: |
|
|
|
{ |
|
|
|
re_compiled[j].type = CHAR; |
|
|
@ -266,7 +266,7 @@ re_t re_compile(const char* pattern) |
|
|
|
|
|
|
|
void re_print(regex_t* pattern) |
|
|
|
{ |
|
|
|
const char* types[] = { "UNUSED", "DOT", "BEGIN", "END", "QUESTIONMARK", "STAR", "PLUS", "CHAR", "CHAR_CLASS", "INV_CHAR_CLASS", "DIGIT", "NOT_DIGIT", "ALPHA", "NOT_ALPHA", "WHITESPACE", "NOT_WHITESPACE", "BRANCH" }; |
|
|
|
const char* types[] = { "UNUSED", "DOT", "BEGIN", "END", "QUESTIONMARK", "STAR", "PLUS", "CHAR", "CHAR_CLASS", "INV_CHAR_CLASS", "DIGIT", "NOT_DIGIT", "ALPHA", "NOT_ALPHA", "WHITESPACE" , "NOT_WHITESPACE", /* "BRANCH" */ }; |
|
|
|
|
|
|
|
int i; |
|
|
|
int j; |
|
|
|