removed hawk_rtx_matchrex() and redefined it as a macro
This commit is contained in:
parent
45f08d03d9
commit
0c2a13b652
@ -1161,7 +1161,7 @@ static int __substitute (hawk_rtx_t* rtx, hawk_int_t max_count)
|
|||||||
|
|
||||||
if (max_count == 0 || sub_count < max_count)
|
if (max_count == 0 || sub_count < max_count)
|
||||||
{
|
{
|
||||||
n = hawk_rtx_matchrex(rtx, rex, &s2, &cur, &mat, HAWK_NULL);
|
n = hawk_rtx_matchrexwithoocs(rtx, rex, &s2, &cur, &mat, HAWK_NULL);
|
||||||
if (n <= -1) goto oops;
|
if (n <= -1) goto oops;
|
||||||
}
|
}
|
||||||
else n = 0;
|
else n = 0;
|
||||||
|
@ -77,12 +77,6 @@ int hawk_rtx_matchval (
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
int hawk_rtx_matchrex (
|
|
||||||
hawk_rtx_t* rtx, hawk_tre_t* code,
|
|
||||||
const hawk_oocs_t* str, const hawk_oocs_t* substr,
|
|
||||||
hawk_oocs_t* match, hawk_oocs_t submat[9]
|
|
||||||
);
|
|
||||||
|
|
||||||
int hawk_rtx_matchrexwithucs (
|
int hawk_rtx_matchrexwithucs (
|
||||||
hawk_rtx_t* rtx, hawk_tre_t* code,
|
hawk_rtx_t* rtx, hawk_tre_t* code,
|
||||||
const hawk_ucs_t* str, const hawk_ucs_t* substr,
|
const hawk_ucs_t* str, const hawk_ucs_t* substr,
|
||||||
@ -95,6 +89,12 @@ int hawk_rtx_matchrexwithbcs (
|
|||||||
hawk_bcs_t* match, hawk_bcs_t submat[9]
|
hawk_bcs_t* match, hawk_bcs_t submat[9]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
#if defined(HAWK_OOCH_IS_UCH)
|
||||||
|
# define hawk_rtx_matchrexwithoocs hawk_rtx_matchrexwithucs
|
||||||
|
#else
|
||||||
|
# define hawk_rtx_matchrexwithoocs hawk_rtx_matchrexwithbcs
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -261,7 +261,7 @@ hawk_ooch_t* hawk_rtx_strxntokbyrex (
|
|||||||
|
|
||||||
while (cursub.len > 0)
|
while (cursub.len > 0)
|
||||||
{
|
{
|
||||||
n = hawk_rtx_matchrex(rtx, rex, &s, &cursub, &match, HAWK_NULL);
|
n = hawk_rtx_matchrexwithoocs(rtx, rex, &s, &cursub, &match, HAWK_NULL);
|
||||||
if (n <= -1) return HAWK_NULL;
|
if (n <= -1) return HAWK_NULL;
|
||||||
|
|
||||||
if (n == 0)
|
if (n == 0)
|
||||||
@ -432,45 +432,6 @@ hawk_ooch_t* hawk_rtx_strxnfld (
|
|||||||
return HAWK_NULL;
|
return HAWK_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int matchtre (hawk_tre_t* tre, int opt, const hawk_oocs_t* str, hawk_oocs_t* mat, hawk_oocs_t submat[9], hawk_gem_t* errgem)
|
|
||||||
{
|
|
||||||
int n;
|
|
||||||
/*hawk_tre_match_t match[10] = { { 0, 0 }, };*/
|
|
||||||
hawk_tre_match_t match[10];
|
|
||||||
|
|
||||||
HAWK_MEMSET (match, 0, HAWK_SIZEOF(match));
|
|
||||||
n = hawk_tre_execx(tre, str->ptr, str->len, match, HAWK_COUNTOF(match), opt, errgem);
|
|
||||||
if (n <= -1)
|
|
||||||
{
|
|
||||||
if (hawk_gem_geterrnum(errgem) == HAWK_EREXNOMAT) return 0;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
HAWK_ASSERT (match[0].rm_so != -1);
|
|
||||||
if (mat)
|
|
||||||
{
|
|
||||||
mat->ptr = &str->ptr[match[0].rm_so];
|
|
||||||
mat->len = match[0].rm_eo - match[0].rm_so;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (submat)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
/* you must intialize submat before you pass into this
|
|
||||||
* function because it can abort filling */
|
|
||||||
for (i = 1; i < HAWK_COUNTOF(match); i++)
|
|
||||||
{
|
|
||||||
if (match[i].rm_so != -1)
|
|
||||||
{
|
|
||||||
submat[i-1].ptr = &str->ptr[match[i].rm_so];
|
|
||||||
submat[i-1].len = match[i].rm_eo - match[i].rm_so;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int matchtre_ucs (hawk_tre_t* tre, int opt, const hawk_ucs_t* str, hawk_ucs_t* mat, hawk_ucs_t submat[9], hawk_gem_t* errgem)
|
static int matchtre_ucs (hawk_tre_t* tre, int opt, const hawk_ucs_t* str, hawk_ucs_t* mat, hawk_ucs_t submat[9], hawk_gem_t* errgem)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
@ -478,7 +439,7 @@ static int matchtre_ucs (hawk_tre_t* tre, int opt, const hawk_ucs_t* str, hawk_u
|
|||||||
hawk_tre_match_t match[10];
|
hawk_tre_match_t match[10];
|
||||||
|
|
||||||
HAWK_MEMSET (match, 0, HAWK_SIZEOF(match));
|
HAWK_MEMSET (match, 0, HAWK_SIZEOF(match));
|
||||||
n = hawk_tre_execbchars(tre, str->ptr, str->len, match, HAWK_COUNTOF(match), opt, errgem);
|
n = hawk_tre_execuchars(tre, str->ptr, str->len, match, HAWK_COUNTOF(match), opt, errgem);
|
||||||
if (n <= -1)
|
if (n <= -1)
|
||||||
{
|
{
|
||||||
if (hawk_gem_geterrnum(errgem) == HAWK_EREXNOMAT) return 0;
|
if (hawk_gem_geterrnum(errgem) == HAWK_EREXNOMAT) return 0;
|
||||||
@ -575,7 +536,11 @@ int hawk_rtx_matchval (hawk_rtx_t* rtx, hawk_val_t* val, const hawk_oocs_t* str,
|
|||||||
if (x <= -1) return -1;
|
if (x <= -1) return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
x = matchtre(
|
#if defined(HAWK_OOCH_IS_UCH)
|
||||||
|
x = matchtre_ucs(
|
||||||
|
#else
|
||||||
|
x = matchtre_bcs(
|
||||||
|
#endif
|
||||||
code, ((str->ptr == substr->ptr)? opt: (opt | HAWK_TRE_NOTBOL)),
|
code, ((str->ptr == substr->ptr)? opt: (opt | HAWK_TRE_NOTBOL)),
|
||||||
substr, match, submat, hawk_rtx_getgem(rtx)
|
substr, match, submat, hawk_rtx_getgem(rtx)
|
||||||
);
|
);
|
||||||
@ -592,15 +557,6 @@ int hawk_rtx_matchval (hawk_rtx_t* rtx, hawk_val_t* val, const hawk_oocs_t* str,
|
|||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hawk_rtx_matchrex (hawk_rtx_t* rtx, hawk_tre_t* code, const hawk_oocs_t* str, const hawk_oocs_t* substr, hawk_oocs_t* match, hawk_oocs_t submat[9])
|
|
||||||
{
|
|
||||||
int opt = HAWK_TRE_BACKTRACKING; /* TODO: option... HAWK_TRE_BACKTRACKING or others??? */
|
|
||||||
return matchtre(
|
|
||||||
code, ((str->ptr == substr->ptr)? opt: (opt | HAWK_TRE_NOTBOL)),
|
|
||||||
substr, match, submat, hawk_rtx_getgem(rtx)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
int hawk_rtx_matchrexwithucs (hawk_rtx_t* rtx, hawk_tre_t* code, const hawk_ucs_t* str, const hawk_ucs_t* substr, hawk_ucs_t* match, hawk_ucs_t submat[9])
|
int hawk_rtx_matchrexwithucs (hawk_rtx_t* rtx, hawk_tre_t* code, const hawk_ucs_t* str, const hawk_ucs_t* substr, hawk_ucs_t* match, hawk_ucs_t submat[9])
|
||||||
{
|
{
|
||||||
int opt = HAWK_TRE_BACKTRACKING; /* TODO: option... HAWK_TRE_BACKTRACKING or others??? */
|
int opt = HAWK_TRE_BACKTRACKING; /* TODO: option... HAWK_TRE_BACKTRACKING or others??? */
|
||||||
|
@ -247,7 +247,7 @@ static HAWK_INLINE int match_long_rs (hawk_rtx_t* rtx, hawk_ooecs_t* buf, hawk_r
|
|||||||
HAWK_ASSERT (rtx->gbl.rs[0] != HAWK_NULL);
|
HAWK_ASSERT (rtx->gbl.rs[0] != HAWK_NULL);
|
||||||
HAWK_ASSERT (rtx->gbl.rs[1] != HAWK_NULL);
|
HAWK_ASSERT (rtx->gbl.rs[1] != HAWK_NULL);
|
||||||
|
|
||||||
ret = hawk_rtx_matchrex(rtx, rtx->gbl.rs[rtx->gbl.ignorecase], HAWK_OOECS_OOCS(buf), HAWK_OOECS_OOCS(buf), &match, HAWK_NULL);
|
ret = hawk_rtx_matchrexwithoocs(rtx, rtx->gbl.rs[rtx->gbl.ignorecase], HAWK_OOECS_OOCS(buf), HAWK_OOECS_OOCS(buf), &match, HAWK_NULL);
|
||||||
if (ret >= 1)
|
if (ret >= 1)
|
||||||
{
|
{
|
||||||
if (p->in.eof)
|
if (p->in.eof)
|
||||||
|
Loading…
Reference in New Issue
Block a user