aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/hyperscan/src/grey.cpp
diff options
context:
space:
mode:
authorbnagaev <bnagaev@yandex-team.ru>2022-02-10 16:47:04 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:47:04 +0300
commitc74559fb88da8adac0d9186cfa55a6b13c47695f (patch)
treeb83306b6e37edeea782e9eed673d89286c4fef35 /contrib/libs/hyperscan/src/grey.cpp
parentd6449ba66291ff0c0d352c82e6eb3efb4c8a7e8d (diff)
downloadydb-c74559fb88da8adac0d9186cfa55a6b13c47695f.tar.gz
Restoring authorship annotation for <bnagaev@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/hyperscan/src/grey.cpp')
-rw-r--r--contrib/libs/hyperscan/src/grey.cpp710
1 files changed, 355 insertions, 355 deletions
diff --git a/contrib/libs/hyperscan/src/grey.cpp b/contrib/libs/hyperscan/src/grey.cpp
index a219c08ba2..86a93d25aa 100644
--- a/contrib/libs/hyperscan/src/grey.cpp
+++ b/contrib/libs/hyperscan/src/grey.cpp
@@ -1,70 +1,70 @@
-/*
+/*
* Copyright (c) 2015-2018, Intel Corporation
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Intel Corporation nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "grey.h"
-#include "ue2common.h"
-
-#include <algorithm>
-#include <cstdlib> // exit
-#include <string>
-#include <vector>
-
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Intel Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "grey.h"
+#include "ue2common.h"
+
+#include <algorithm>
+#include <cstdlib> // exit
+#include <string>
+#include <vector>
+
#define DEFAULT_MAX_HISTORY 110
-
-using namespace std;
-
-namespace ue2 {
-
-Grey::Grey(void) :
- optimiseComponentTree(true),
+
+using namespace std;
+
+namespace ue2 {
+
+Grey::Grey(void) :
+ optimiseComponentTree(true),
calcComponents(true),
- performGraphSimplification(true),
- prefilterReductions(true),
- removeEdgeRedundancy(true),
- allowGough(true),
- allowHaigLit(true),
- allowLitHaig(true),
- allowLbr(true),
- allowMcClellan(true),
+ performGraphSimplification(true),
+ prefilterReductions(true),
+ removeEdgeRedundancy(true),
+ allowGough(true),
+ allowHaigLit(true),
+ allowLitHaig(true),
+ allowLbr(true),
+ allowMcClellan(true),
allowSheng(true),
allowMcSheng(true),
- allowPuff(true),
+ allowPuff(true),
allowLiteral(true),
allowViolet(true),
- allowExtendedNFA(true), /* bounded repeats of course */
- allowLimExNFA(true),
- allowAnchoredAcyclic(true),
- allowSmallLiteralSet(true),
- allowCastle(true),
- allowDecoratedLiteral(true),
+ allowExtendedNFA(true), /* bounded repeats of course */
+ allowLimExNFA(true),
+ allowAnchoredAcyclic(true),
+ allowSmallLiteralSet(true),
+ allowCastle(true),
+ allowDecoratedLiteral(true),
allowApproximateMatching(true),
- allowNoodle(true),
- fdrAllowTeddy(true),
+ allowNoodle(true),
+ fdrAllowTeddy(true),
fdrAllowFlood(true),
violetAvoidSuffixes(true),
violetAvoidWeakInfixes(true),
@@ -73,131 +73,131 @@ Grey::Grey(void) :
violetLiteralChains(true),
violetDoubleCutLiteralLen(3),
violetEarlyCleanLiteralLen(6),
- puffImproveHead(true),
- castleExclusive(true),
- mergeSEP(true), /* short exhaustible passthroughs */
- mergeRose(true), // roses inside rose
- mergeSuffixes(true), // suffix nfas inside rose
- mergeOutfixes(true),
- onlyOneOutfix(false),
- allowShermanStates(true),
- allowMcClellan8(true),
+ puffImproveHead(true),
+ castleExclusive(true),
+ mergeSEP(true), /* short exhaustible passthroughs */
+ mergeRose(true), // roses inside rose
+ mergeSuffixes(true), // suffix nfas inside rose
+ mergeOutfixes(true),
+ onlyOneOutfix(false),
+ allowShermanStates(true),
+ allowMcClellan8(true),
allowWideStates(true), // enable wide state for McClellan8
- highlanderPruneDFA(true),
- minimizeDFA(true),
- accelerateDFA(true),
- accelerateNFA(true),
- reverseAccelerate(true),
- squashNFA(true),
- compressNFAState(true),
- numberNFAStatesWrong(false), /* debugging only */
- highlanderSquash(true),
- allowZombies(true),
- floodAsPuffette(false),
- nfaForceSize(0),
- maxHistoryAvailable(DEFAULT_MAX_HISTORY),
- minHistoryAvailable(0), /* debugging only */
- maxAnchoredRegion(63), /* for rose's atable to run over */
- minRoseLiteralLength(3),
- minRoseNetflowLiteralLength(2),
- maxRoseNetflowEdges(50000), /* otherwise no netflow pass. */
+ highlanderPruneDFA(true),
+ minimizeDFA(true),
+ accelerateDFA(true),
+ accelerateNFA(true),
+ reverseAccelerate(true),
+ squashNFA(true),
+ compressNFAState(true),
+ numberNFAStatesWrong(false), /* debugging only */
+ highlanderSquash(true),
+ allowZombies(true),
+ floodAsPuffette(false),
+ nfaForceSize(0),
+ maxHistoryAvailable(DEFAULT_MAX_HISTORY),
+ minHistoryAvailable(0), /* debugging only */
+ maxAnchoredRegion(63), /* for rose's atable to run over */
+ minRoseLiteralLength(3),
+ minRoseNetflowLiteralLength(2),
+ maxRoseNetflowEdges(50000), /* otherwise no netflow pass. */
maxEditDistance(16),
- minExtBoundedRepeatSize(32),
- goughCopyPropagate(true),
- goughRegisterAllocate(true),
- shortcutLiterals(true),
- roseGraphReduction(true),
- roseRoleAliasing(true),
- roseMasks(true),
- roseConvertFloodProneSuffixes(true),
- roseMergeRosesDuringAliasing(true),
- roseMultiTopRoses(true),
- roseHamsterMasks(true),
- roseLookaroundMasks(true),
- roseMcClellanPrefix(1),
- roseMcClellanSuffix(1),
- roseMcClellanOutfix(2),
- roseTransformDelay(true),
- earlyMcClellanPrefix(true),
- earlyMcClellanInfix(true),
- earlyMcClellanSuffix(true),
- allowCountingMiracles(true),
- allowSomChain(true),
- somMaxRevNfaLength(126),
- hamsterAccelForward(true),
- hamsterAccelReverse(false),
- miracleHistoryBonus(16),
- equivalenceEnable(true),
-
- allowSmallWrite(true), // McClellan dfas for small patterns
+ minExtBoundedRepeatSize(32),
+ goughCopyPropagate(true),
+ goughRegisterAllocate(true),
+ shortcutLiterals(true),
+ roseGraphReduction(true),
+ roseRoleAliasing(true),
+ roseMasks(true),
+ roseConvertFloodProneSuffixes(true),
+ roseMergeRosesDuringAliasing(true),
+ roseMultiTopRoses(true),
+ roseHamsterMasks(true),
+ roseLookaroundMasks(true),
+ roseMcClellanPrefix(1),
+ roseMcClellanSuffix(1),
+ roseMcClellanOutfix(2),
+ roseTransformDelay(true),
+ earlyMcClellanPrefix(true),
+ earlyMcClellanInfix(true),
+ earlyMcClellanSuffix(true),
+ allowCountingMiracles(true),
+ allowSomChain(true),
+ somMaxRevNfaLength(126),
+ hamsterAccelForward(true),
+ hamsterAccelReverse(false),
+ miracleHistoryBonus(16),
+ equivalenceEnable(true),
+
+ allowSmallWrite(true), // McClellan dfas for small patterns
allowSmallWriteSheng(false), // allow use of Sheng for SMWR
-
- smallWriteLargestBuffer(70), // largest buffer that can be
- // considered a small write
- // all blocks larger than this
- // are given to rose &co
- smallWriteLargestBufferBad(35),
- limitSmallWriteOutfixSize(1048576), // 1 MB
+
+ smallWriteLargestBuffer(70), // largest buffer that can be
+ // considered a small write
+ // all blocks larger than this
+ // are given to rose &co
+ smallWriteLargestBufferBad(35),
+ limitSmallWriteOutfixSize(1048576), // 1 MB
smallWriteMaxPatterns(10000),
smallWriteMaxLiterals(10000),
smallWriteMergeBatchSize(20),
allowTamarama(true), // Tamarama engine
tamaChunkSize(100),
- dumpFlags(0),
- limitPatternCount(8000000), // 8M patterns
- limitPatternLength(16000), // 16K bytes
- limitGraphVertices(500000), // 500K vertices
- limitGraphEdges(1000000), // 1M edges
- limitReportCount(4*8000000),
- limitLiteralCount(8000000), // 8M literals
- limitLiteralLength(16000),
- limitLiteralMatcherChars(1073741824), // 1 GB
- limitLiteralMatcherSize(1073741824), // 1 GB
- limitRoseRoleCount(4*8000000),
- limitRoseEngineCount(8000000), // 8M engines
- limitRoseAnchoredSize(1073741824), // 1 GB
- limitEngineSize(1073741824), // 1 GB
- limitDFASize(1073741824), // 1 GB
- limitNFASize(1048576), // 1 MB
+ dumpFlags(0),
+ limitPatternCount(8000000), // 8M patterns
+ limitPatternLength(16000), // 16K bytes
+ limitGraphVertices(500000), // 500K vertices
+ limitGraphEdges(1000000), // 1M edges
+ limitReportCount(4*8000000),
+ limitLiteralCount(8000000), // 8M literals
+ limitLiteralLength(16000),
+ limitLiteralMatcherChars(1073741824), // 1 GB
+ limitLiteralMatcherSize(1073741824), // 1 GB
+ limitRoseRoleCount(4*8000000),
+ limitRoseEngineCount(8000000), // 8M engines
+ limitRoseAnchoredSize(1073741824), // 1 GB
+ limitEngineSize(1073741824), // 1 GB
+ limitDFASize(1073741824), // 1 GB
+ limitNFASize(1048576), // 1 MB
limitLBRSize(1048576), // 1 MB
limitApproxMatchingVertices(5000)
-{
- assert(maxAnchoredRegion < 64); /* a[lm]_log_sum have limited capacity */
-}
-
-} // namespace ue2
-
-#ifndef RELEASE_BUILD
-
-#include <boost/lexical_cast.hpp>
-using boost::lexical_cast;
-
-namespace ue2 {
-
-void applyGreyOverrides(Grey *g, const string &s) {
- string::const_iterator p = s.begin();
- string::const_iterator pe = s.end();
- string help = "help:0";
- bool invalid_key_seen = false;
- Grey defaultg;
-
- if (s == "help" || s == "help:") {
- printf("Valid grey overrides:\n");
- p = help.begin();
- pe = help.end();
- }
-
- while (p != pe) {
- string::const_iterator ke = find(p, pe, ':');
-
- if (ke == pe) {
- break;
- }
-
- string key(p, ke);
-
- string::const_iterator ve = find(ke, pe, ';');
-
+{
+ assert(maxAnchoredRegion < 64); /* a[lm]_log_sum have limited capacity */
+}
+
+} // namespace ue2
+
+#ifndef RELEASE_BUILD
+
+#include <boost/lexical_cast.hpp>
+using boost::lexical_cast;
+
+namespace ue2 {
+
+void applyGreyOverrides(Grey *g, const string &s) {
+ string::const_iterator p = s.begin();
+ string::const_iterator pe = s.end();
+ string help = "help:0";
+ bool invalid_key_seen = false;
+ Grey defaultg;
+
+ if (s == "help" || s == "help:") {
+ printf("Valid grey overrides:\n");
+ p = help.begin();
+ pe = help.end();
+ }
+
+ while (p != pe) {
+ string::const_iterator ke = find(p, pe, ':');
+
+ if (ke == pe) {
+ break;
+ }
+
+ string key(p, ke);
+
+ string::const_iterator ve = find(ke, pe, ';');
+
unsigned int value = 0;
try {
value = lexical_cast<unsigned int>(string(ke + 1, ve));
@@ -207,42 +207,42 @@ void applyGreyOverrides(Grey *g, const string &s) {
invalid_key_seen = true;
break;
}
- bool done = false;
-
- /* surely there exists a nice template to go with this macro to make
- * all the boring code disappear */
-#define G_UPDATE(k) do { \
- if (key == ""#k) { g->k = value; done = 1;} \
- if (key == "help") { \
- printf("\t%-30s\tdefault: %s\n", #k, \
- lexical_cast<string>(defaultg.k).c_str()); \
- } \
- } while (0)
-
- G_UPDATE(optimiseComponentTree);
+ bool done = false;
+
+ /* surely there exists a nice template to go with this macro to make
+ * all the boring code disappear */
+#define G_UPDATE(k) do { \
+ if (key == ""#k) { g->k = value; done = 1;} \
+ if (key == "help") { \
+ printf("\t%-30s\tdefault: %s\n", #k, \
+ lexical_cast<string>(defaultg.k).c_str()); \
+ } \
+ } while (0)
+
+ G_UPDATE(optimiseComponentTree);
G_UPDATE(calcComponents);
- G_UPDATE(performGraphSimplification);
- G_UPDATE(prefilterReductions);
- G_UPDATE(removeEdgeRedundancy);
- G_UPDATE(allowGough);
- G_UPDATE(allowHaigLit);
- G_UPDATE(allowLitHaig);
- G_UPDATE(allowLbr);
- G_UPDATE(allowMcClellan);
+ G_UPDATE(performGraphSimplification);
+ G_UPDATE(prefilterReductions);
+ G_UPDATE(removeEdgeRedundancy);
+ G_UPDATE(allowGough);
+ G_UPDATE(allowHaigLit);
+ G_UPDATE(allowLitHaig);
+ G_UPDATE(allowLbr);
+ G_UPDATE(allowMcClellan);
G_UPDATE(allowSheng);
G_UPDATE(allowMcSheng);
- G_UPDATE(allowPuff);
+ G_UPDATE(allowPuff);
G_UPDATE(allowLiteral);
G_UPDATE(allowViolet);
- G_UPDATE(allowExtendedNFA);
- G_UPDATE(allowLimExNFA);
- G_UPDATE(allowAnchoredAcyclic);
- G_UPDATE(allowSmallLiteralSet);
- G_UPDATE(allowCastle);
- G_UPDATE(allowDecoratedLiteral);
- G_UPDATE(allowNoodle);
+ G_UPDATE(allowExtendedNFA);
+ G_UPDATE(allowLimExNFA);
+ G_UPDATE(allowAnchoredAcyclic);
+ G_UPDATE(allowSmallLiteralSet);
+ G_UPDATE(allowCastle);
+ G_UPDATE(allowDecoratedLiteral);
+ G_UPDATE(allowNoodle);
G_UPDATE(allowApproximateMatching);
- G_UPDATE(fdrAllowTeddy);
+ G_UPDATE(fdrAllowTeddy);
G_UPDATE(fdrAllowFlood);
G_UPDATE(violetAvoidSuffixes);
G_UPDATE(violetAvoidWeakInfixes);
@@ -251,169 +251,169 @@ void applyGreyOverrides(Grey *g, const string &s) {
G_UPDATE(violetLiteralChains);
G_UPDATE(violetDoubleCutLiteralLen);
G_UPDATE(violetEarlyCleanLiteralLen);
- G_UPDATE(puffImproveHead);
- G_UPDATE(castleExclusive);
- G_UPDATE(mergeSEP);
- G_UPDATE(mergeRose);
- G_UPDATE(mergeSuffixes);
- G_UPDATE(mergeOutfixes);
- G_UPDATE(onlyOneOutfix);
- G_UPDATE(allowShermanStates);
- G_UPDATE(allowMcClellan8);
+ G_UPDATE(puffImproveHead);
+ G_UPDATE(castleExclusive);
+ G_UPDATE(mergeSEP);
+ G_UPDATE(mergeRose);
+ G_UPDATE(mergeSuffixes);
+ G_UPDATE(mergeOutfixes);
+ G_UPDATE(onlyOneOutfix);
+ G_UPDATE(allowShermanStates);
+ G_UPDATE(allowMcClellan8);
G_UPDATE(allowWideStates);
- G_UPDATE(highlanderPruneDFA);
- G_UPDATE(minimizeDFA);
- G_UPDATE(accelerateDFA);
- G_UPDATE(accelerateNFA);
- G_UPDATE(reverseAccelerate);
- G_UPDATE(squashNFA);
- G_UPDATE(compressNFAState);
- G_UPDATE(numberNFAStatesWrong);
- G_UPDATE(allowZombies);
- G_UPDATE(floodAsPuffette);
- G_UPDATE(nfaForceSize);
- G_UPDATE(highlanderSquash);
- G_UPDATE(maxHistoryAvailable);
- G_UPDATE(minHistoryAvailable);
- G_UPDATE(maxAnchoredRegion);
- G_UPDATE(minRoseLiteralLength);
- G_UPDATE(minRoseNetflowLiteralLength);
- G_UPDATE(maxRoseNetflowEdges);
+ G_UPDATE(highlanderPruneDFA);
+ G_UPDATE(minimizeDFA);
+ G_UPDATE(accelerateDFA);
+ G_UPDATE(accelerateNFA);
+ G_UPDATE(reverseAccelerate);
+ G_UPDATE(squashNFA);
+ G_UPDATE(compressNFAState);
+ G_UPDATE(numberNFAStatesWrong);
+ G_UPDATE(allowZombies);
+ G_UPDATE(floodAsPuffette);
+ G_UPDATE(nfaForceSize);
+ G_UPDATE(highlanderSquash);
+ G_UPDATE(maxHistoryAvailable);
+ G_UPDATE(minHistoryAvailable);
+ G_UPDATE(maxAnchoredRegion);
+ G_UPDATE(minRoseLiteralLength);
+ G_UPDATE(minRoseNetflowLiteralLength);
+ G_UPDATE(maxRoseNetflowEdges);
G_UPDATE(maxEditDistance);
- G_UPDATE(minExtBoundedRepeatSize);
- G_UPDATE(goughCopyPropagate);
- G_UPDATE(goughRegisterAllocate);
- G_UPDATE(shortcutLiterals);
- G_UPDATE(roseGraphReduction);
- G_UPDATE(roseRoleAliasing);
- G_UPDATE(roseMasks);
- G_UPDATE(roseConvertFloodProneSuffixes);
- G_UPDATE(roseMergeRosesDuringAliasing);
- G_UPDATE(roseMultiTopRoses);
- G_UPDATE(roseHamsterMasks);
- G_UPDATE(roseLookaroundMasks);
- G_UPDATE(roseMcClellanPrefix);
- G_UPDATE(roseMcClellanSuffix);
- G_UPDATE(roseMcClellanOutfix);
- G_UPDATE(roseTransformDelay);
- G_UPDATE(earlyMcClellanPrefix);
- G_UPDATE(earlyMcClellanInfix);
- G_UPDATE(earlyMcClellanSuffix);
- G_UPDATE(allowSomChain);
- G_UPDATE(allowCountingMiracles);
- G_UPDATE(somMaxRevNfaLength);
- G_UPDATE(hamsterAccelForward);
- G_UPDATE(hamsterAccelReverse);
- G_UPDATE(miracleHistoryBonus);
- G_UPDATE(equivalenceEnable);
- G_UPDATE(allowSmallWrite);
+ G_UPDATE(minExtBoundedRepeatSize);
+ G_UPDATE(goughCopyPropagate);
+ G_UPDATE(goughRegisterAllocate);
+ G_UPDATE(shortcutLiterals);
+ G_UPDATE(roseGraphReduction);
+ G_UPDATE(roseRoleAliasing);
+ G_UPDATE(roseMasks);
+ G_UPDATE(roseConvertFloodProneSuffixes);
+ G_UPDATE(roseMergeRosesDuringAliasing);
+ G_UPDATE(roseMultiTopRoses);
+ G_UPDATE(roseHamsterMasks);
+ G_UPDATE(roseLookaroundMasks);
+ G_UPDATE(roseMcClellanPrefix);
+ G_UPDATE(roseMcClellanSuffix);
+ G_UPDATE(roseMcClellanOutfix);
+ G_UPDATE(roseTransformDelay);
+ G_UPDATE(earlyMcClellanPrefix);
+ G_UPDATE(earlyMcClellanInfix);
+ G_UPDATE(earlyMcClellanSuffix);
+ G_UPDATE(allowSomChain);
+ G_UPDATE(allowCountingMiracles);
+ G_UPDATE(somMaxRevNfaLength);
+ G_UPDATE(hamsterAccelForward);
+ G_UPDATE(hamsterAccelReverse);
+ G_UPDATE(miracleHistoryBonus);
+ G_UPDATE(equivalenceEnable);
+ G_UPDATE(allowSmallWrite);
G_UPDATE(allowSmallWriteSheng);
- G_UPDATE(smallWriteLargestBuffer);
- G_UPDATE(smallWriteLargestBufferBad);
- G_UPDATE(limitSmallWriteOutfixSize);
+ G_UPDATE(smallWriteLargestBuffer);
+ G_UPDATE(smallWriteLargestBufferBad);
+ G_UPDATE(limitSmallWriteOutfixSize);
G_UPDATE(smallWriteMaxPatterns);
G_UPDATE(smallWriteMaxLiterals);
G_UPDATE(smallWriteMergeBatchSize);
G_UPDATE(allowTamarama);
G_UPDATE(tamaChunkSize);
- G_UPDATE(limitPatternCount);
- G_UPDATE(limitPatternLength);
- G_UPDATE(limitGraphVertices);
- G_UPDATE(limitGraphEdges);
- G_UPDATE(limitReportCount);
- G_UPDATE(limitLiteralCount);
- G_UPDATE(limitLiteralLength);
- G_UPDATE(limitLiteralMatcherChars);
- G_UPDATE(limitLiteralMatcherSize);
- G_UPDATE(limitRoseRoleCount);
- G_UPDATE(limitRoseEngineCount);
- G_UPDATE(limitRoseAnchoredSize);
- G_UPDATE(limitEngineSize);
- G_UPDATE(limitDFASize);
- G_UPDATE(limitNFASize);
- G_UPDATE(limitLBRSize);
+ G_UPDATE(limitPatternCount);
+ G_UPDATE(limitPatternLength);
+ G_UPDATE(limitGraphVertices);
+ G_UPDATE(limitGraphEdges);
+ G_UPDATE(limitReportCount);
+ G_UPDATE(limitLiteralCount);
+ G_UPDATE(limitLiteralLength);
+ G_UPDATE(limitLiteralMatcherChars);
+ G_UPDATE(limitLiteralMatcherSize);
+ G_UPDATE(limitRoseRoleCount);
+ G_UPDATE(limitRoseEngineCount);
+ G_UPDATE(limitRoseAnchoredSize);
+ G_UPDATE(limitEngineSize);
+ G_UPDATE(limitDFASize);
+ G_UPDATE(limitNFASize);
+ G_UPDATE(limitLBRSize);
G_UPDATE(limitApproxMatchingVertices);
-
-#undef G_UPDATE
- if (key == "simple_som") {
- g->allowHaigLit = false;
- g->allowLitHaig = false;
- g->allowSomChain = false;
- g->somMaxRevNfaLength = 0;
- done = true;
- }
- if (key == "forceOutfixesNFA") {
- g->allowAnchoredAcyclic = false;
- g->allowCastle = false;
- g->allowDecoratedLiteral = false;
- g->allowGough = false;
- g->allowHaigLit = false;
- g->allowLbr = false;
- g->allowLimExNFA = true;
- g->allowLitHaig = false;
- g->allowMcClellan = false;
- g->allowPuff = false;
+
+#undef G_UPDATE
+ if (key == "simple_som") {
+ g->allowHaigLit = false;
+ g->allowLitHaig = false;
+ g->allowSomChain = false;
+ g->somMaxRevNfaLength = 0;
+ done = true;
+ }
+ if (key == "forceOutfixesNFA") {
+ g->allowAnchoredAcyclic = false;
+ g->allowCastle = false;
+ g->allowDecoratedLiteral = false;
+ g->allowGough = false;
+ g->allowHaigLit = false;
+ g->allowLbr = false;
+ g->allowLimExNFA = true;
+ g->allowLitHaig = false;
+ g->allowMcClellan = false;
+ g->allowPuff = false;
g->allowLiteral = false;
g->allowViolet = false;
- g->allowSmallLiteralSet = false;
- g->roseMasks = false;
- done = true;
- }
- if (key == "forceOutfixesDFA") {
- g->allowAnchoredAcyclic = false;
- g->allowCastle = false;
- g->allowDecoratedLiteral = false;
- g->allowGough = false;
- g->allowHaigLit = false;
- g->allowLbr = false;
- g->allowLimExNFA = false;
- g->allowLitHaig = false;
- g->allowMcClellan = true;
- g->allowPuff = false;
+ g->allowSmallLiteralSet = false;
+ g->roseMasks = false;
+ done = true;
+ }
+ if (key == "forceOutfixesDFA") {
+ g->allowAnchoredAcyclic = false;
+ g->allowCastle = false;
+ g->allowDecoratedLiteral = false;
+ g->allowGough = false;
+ g->allowHaigLit = false;
+ g->allowLbr = false;
+ g->allowLimExNFA = false;
+ g->allowLitHaig = false;
+ g->allowMcClellan = true;
+ g->allowPuff = false;
g->allowLiteral = false;
g->allowViolet = false;
- g->allowSmallLiteralSet = false;
- g->roseMasks = false;
- done = true;
- }
- if (key == "forceOutfixes") {
- g->allowAnchoredAcyclic = false;
- g->allowCastle = false;
- g->allowDecoratedLiteral = false;
- g->allowGough = true;
- g->allowHaigLit = false;
- g->allowLbr = false;
- g->allowLimExNFA = true;
- g->allowLitHaig = false;
- g->allowMcClellan = true;
- g->allowPuff = false;
+ g->allowSmallLiteralSet = false;
+ g->roseMasks = false;
+ done = true;
+ }
+ if (key == "forceOutfixes") {
+ g->allowAnchoredAcyclic = false;
+ g->allowCastle = false;
+ g->allowDecoratedLiteral = false;
+ g->allowGough = true;
+ g->allowHaigLit = false;
+ g->allowLbr = false;
+ g->allowLimExNFA = true;
+ g->allowLitHaig = false;
+ g->allowMcClellan = true;
+ g->allowPuff = false;
g->allowLiteral = false;
g->allowViolet = false;
- g->allowSmallLiteralSet = false;
- g->roseMasks = false;
- done = true;
- }
-
- if (!done && key != "help") {
- printf("Invalid grey override key %s:%u\n", key.c_str(), value);
- invalid_key_seen = true;
- }
-
- p = ve;
-
- if (p != pe) {
- ++p;
- }
- }
-
- if (invalid_key_seen) {
- applyGreyOverrides(g, "help");
- exit(1);
- }
-
- assert(g->maxAnchoredRegion < 64); /* a[lm]_log_sum have limited capacity */
-}
-
-} // namespace ue2
-
-#endif
+ g->allowSmallLiteralSet = false;
+ g->roseMasks = false;
+ done = true;
+ }
+
+ if (!done && key != "help") {
+ printf("Invalid grey override key %s:%u\n", key.c_str(), value);
+ invalid_key_seen = true;
+ }
+
+ p = ve;
+
+ if (p != pe) {
+ ++p;
+ }
+ }
+
+ if (invalid_key_seen) {
+ applyGreyOverrides(g, "help");
+ exit(1);
+ }
+
+ assert(g->maxAnchoredRegion < 64); /* a[lm]_log_sum have limited capacity */
+}
+
+} // namespace ue2
+
+#endif