mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-11-19 18:44:24 +03:00
add new Literal API for pure literal expressions:
Design compile time api hs_compile_lit() and hs_compile_lit_multi() to handle pure literal pattern sets. Corresponding option --literal-on is added for hyperscan testing suites. Extended parameters and part of flags are not supported for this api.
This commit is contained in:
committed by
Chang, Harry
parent
8bfbf07f75
commit
23e5f06594
@@ -238,10 +238,10 @@ hwlmcb_rv_t roseProcessMatchInline(const struct RoseEngine *t,
|
||||
assert(id && id < t->size); // id is an offset into bytecode
|
||||
const u64a som = 0;
|
||||
const u8 flags = 0;
|
||||
if (!scratch->pure) {
|
||||
return roseRunProgram(t, scratch, id, som, end, flags);
|
||||
} else {
|
||||
if (t->pureLiteral) {
|
||||
return roseRunProgram_l(t, scratch, id, som, end, flags);
|
||||
} else {
|
||||
return roseRunProgram(t, scratch, id, som, end, flags);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -619,8 +619,12 @@ int roseReportAdaptor(u64a start, u64a end, ReportID id, void *context) {
|
||||
// Our match ID is the program offset.
|
||||
const u32 program = id;
|
||||
const u8 flags = ROSE_PROG_FLAG_SKIP_MPV_CATCHUP;
|
||||
hwlmcb_rv_t rv =
|
||||
roseRunProgram(rose, scratch, program, start, end, flags);
|
||||
hwlmcb_rv_t rv;
|
||||
if (rose->pureLiteral) {
|
||||
rv = roseRunProgram_l(rose, scratch, program, start, end, flags);
|
||||
} else {
|
||||
rv = roseRunProgram(rose, scratch, program, start, end, flags);
|
||||
}
|
||||
if (rv == HWLM_TERMINATE_MATCHING) {
|
||||
return MO_HALT_MATCHING;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user