if (r != 0) return r;
reg->optimize = (allow_reverse != 0
- ? OPTIMIZE_EXACT_BMH : OPTIMIZE_EXACT_BMH_STEP_FORWARD);
+ ? OPTIMIZE_EXACT_FAST
+ : OPTIMIZE_EXACT_FAST_STEP_FORWARD);
}
else {
reg->optimize = OPTIMIZE_EXACT;
print_optimize_info(FILE* f, regex_t* reg)
{
static const char* on[] = { "NONE", "EXACT",
- "EXACT_BMH", "EXACT_BMH_STEP_FORWARD",
+ "EXACT_FAST", "EXACT_FAST_STEP_FORWARD",
"EXACT_IC", "MAP" };
fprintf(f, "optimize: %s\n", on[reg->optimize]);
reg->exact, reg->exact_end, p, end, range);
break;
- case OPTIMIZE_EXACT_BMH:
+ case OPTIMIZE_EXACT_FAST:
p = bmh_search(reg, reg->exact, reg->exact_end, p, end, range);
break;
- case OPTIMIZE_EXACT_BMH_STEP_FORWARD:
+ case OPTIMIZE_EXACT_FAST_STEP_FORWARD:
p = bmh_search_step_forward(reg, reg->exact, reg->exact_end,
p, end, range);
break;
range, adjrange, end, p);
break;
- case OPTIMIZE_EXACT_BMH:
- case OPTIMIZE_EXACT_BMH_STEP_FORWARD:
+ case OPTIMIZE_EXACT_FAST:
+ case OPTIMIZE_EXACT_FAST_STEP_FORWARD:
goto exact_method;
break;
/* optimize flags */
enum OptimizeType {
- OPTIMIZE_NONE = 0,
- OPTIMIZE_EXACT = 1, /* Slow Search */
- OPTIMIZE_EXACT_BMH = 2, /* Boyer-Moore-Horspool */
- OPTIMIZE_EXACT_BMH_STEP_FORWARD = 3, /* Boyer-Moore-Horspool */
- OPTIMIZE_EXACT_IC = 4, /* Slow Search (ignore case) */
- OPTIMIZE_MAP = 5 /* char map */
+ OPTIMIZE_NONE = 0,
+ OPTIMIZE_EXACT, /* Slow Search */
+ OPTIMIZE_EXACT_FAST, /* Sunday quick search or BMH */
+ OPTIMIZE_EXACT_FAST_STEP_FORWARD, /* Sunday quick search or BMH */
+ OPTIMIZE_EXACT_IC, /* Slow Search (ignore case) */
+ OPTIMIZE_MAP /* char map */
};
/* bit status */