Account for multi-dfa case with ANCHORED_DELAY

Specifically, we must set build_context::floatingMinLiteralMatchOffset
to 1 when thew anchored table contains multiple DFAs, as they can
produce unordered matches.

This check was already been done, but too late to affect the generation
of ANCHORED_DELAY instructions.
This commit is contained in:
Justin Viiret
2016-01-14 10:24:19 +11:00
committed by Matthew Barr
parent d7c8ffc7fd
commit 69682ed263
3 changed files with 21 additions and 15 deletions

View File

@@ -235,13 +235,9 @@ u32 anchoredStateSize(const anchored_matcher_info *atable) {
return curr->state_offset + nfa->scratchStateSize;
}
bool anchoredIsMulti(const RoseEngine &engine) {
const struct anchored_matcher_info *curr
= (const anchored_matcher_info *)getALiteralMatcher(&engine);
return curr && curr->next_offset;
}
bool anchoredIsMulti(const anchored_matcher_info *atable) {
return atable && atable->next_offset;
}
namespace {