Compare commits
2 Commits
13a150d682
...
8f2fbcdb2b
Author | SHA1 | Date | |
---|---|---|---|
8f2fbcdb2b | |||
01d82b8fca |
@ -121,7 +121,7 @@ typedef struct {
|
|||||||
int flags;
|
int flags;
|
||||||
int state;
|
int state;
|
||||||
int width;
|
int width;
|
||||||
int width2;
|
int match_width;
|
||||||
char * whitelist;
|
char * whitelist;
|
||||||
char * blacklist;
|
char * blacklist;
|
||||||
} compiler_state;
|
} compiler_state;
|
||||||
@ -148,7 +148,7 @@ void HOOK_ALL(const int from,
|
|||||||
.input = *s,
|
.input = *s,
|
||||||
.to = ASSERT_HALT(to),
|
.to = ASSERT_HALT(to),
|
||||||
.pattern_width = cs->width,
|
.pattern_width = cs->width,
|
||||||
.match_width = cs->width2,
|
.match_width = cs->match_width,
|
||||||
};
|
};
|
||||||
vector_push(®ex->delta_table,
|
vector_push(®ex->delta_table,
|
||||||
&delta);
|
&delta);
|
||||||
@ -504,7 +504,7 @@ regex_t * regex_compile(const char * const pattern) {
|
|||||||
blacklist[0] = '\0';
|
blacklist[0] = '\0';
|
||||||
cs.flags &= (IS_AT_THE_BEGINNING | FORCE_START_OF_STRING);
|
cs.flags &= (IS_AT_THE_BEGINNING | FORCE_START_OF_STRING);
|
||||||
cs.width = 1;
|
cs.width = 1;
|
||||||
cs.width2 = 1;
|
cs.match_width = 1;
|
||||||
|
|
||||||
// Translate char
|
// Translate char
|
||||||
switch (*s) {
|
switch (*s) {
|
||||||
@ -572,7 +572,7 @@ regex_t * regex_compile(const char * const pattern) {
|
|||||||
// ---
|
// ---
|
||||||
++cs.state;
|
++cs.state;
|
||||||
cs.width = 0;
|
cs.width = 0;
|
||||||
cs.width2 = 0;
|
cs.match_width = 0;
|
||||||
HOOK_ALL(0, whitelist, +1, &cs, regex);
|
HOOK_ALL(0, whitelist, +1, &cs, regex);
|
||||||
cs.width = 1;
|
cs.width = 1;
|
||||||
OFFSHOOT(0, +1, 1, 0, &cs, regex);
|
OFFSHOOT(0, +1, 1, 0, &cs, regex);
|
||||||
|
@ -120,9 +120,8 @@ signed main() {
|
|||||||
TEST(R"del(/\*[\d\D]*\*/)del", "908", false);
|
TEST(R"del(/\*[\d\D]*\*/)del", "908", false);
|
||||||
TEST(R"del(/\*[\d\D]*\*/)del", "/*908*/", true);
|
TEST(R"del(/\*[\d\D]*\*/)del", "/*908*/", true);
|
||||||
TEST(R"del(/\*[\d\D]*\*/)del", "/*asd*/", true);
|
TEST(R"del(/\*[\d\D]*\*/)del", "/*asd*/", true);
|
||||||
TEST(R"del(/\*[\d\D]*\*/)del", "/* 908 */", true);
|
|
||||||
TEST(R"del(/\*[\d\D]*\*/)del", "/* asd */", true);
|
TEST(R"del(/\*[\d\D]*\*/)del", "/* asd */", true);
|
||||||
TEST(R"del(/\*[\d\D]*\*/)del", "/* as\nd */", true);
|
TEST(R"del(/\*[\d\D]*\*/)del", "/* as* */", true);
|
||||||
|
|
||||||
if (test_counter == passed_tests) {
|
if (test_counter == passed_tests) {
|
||||||
fputs("\033[32m", stdout);
|
fputs("\033[32m", stdout);
|
||||||
|
Loading…
Reference in New Issue
Block a user