mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-11-19 02:30:35 +03:00
have single dump function per engine
This commit is contained in:
@@ -38,6 +38,7 @@
|
||||
#include "nfa_dump_api.h"
|
||||
#include "nfa_dump_internal.h"
|
||||
#include "nfa_internal.h"
|
||||
#include "util/dump_util.h"
|
||||
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
@@ -46,27 +47,14 @@
|
||||
#error No dump support!
|
||||
#endif
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace ue2 {
|
||||
|
||||
void nfaExecTamarama_dumpDot(const struct NFA *nfa, UNUSED FILE *f,
|
||||
const std::string &base) {
|
||||
void nfaExecTamarama_dump(const struct NFA *nfa, const string &base) {
|
||||
const Tamarama *t = (const Tamarama *)getImplNfa(nfa);
|
||||
const u32 *subOffset =
|
||||
(const u32 *)((const char *)t + sizeof(struct Tamarama) +
|
||||
t->numSubEngines * sizeof(u32));
|
||||
for (u32 i = 0; i < t->numSubEngines; i++) {
|
||||
std::stringstream ssdot;
|
||||
ssdot << base << "rose_nfa_" << nfa->queueIndex
|
||||
<< "_sub_" << i << ".dot";
|
||||
const NFA *sub = (const struct NFA *)((const char *)t + subOffset[i]);
|
||||
FILE *f1 = fopen(ssdot.str().c_str(), "w");
|
||||
nfaDumpDot(sub, f1, base);
|
||||
fclose(f1);
|
||||
}
|
||||
}
|
||||
|
||||
void nfaExecTamarama_dumpText(const struct NFA *nfa, FILE *f) {
|
||||
const Tamarama *t = (const Tamarama *)getImplNfa(nfa);
|
||||
FILE *f = fopen_or_throw((base + ".txt").c_str(), "w");
|
||||
|
||||
fprintf(f, "Tamarama container engine\n");
|
||||
fprintf(f, "\n");
|
||||
@@ -75,15 +63,17 @@ void nfaExecTamarama_dumpText(const struct NFA *nfa, FILE *f) {
|
||||
fprintf(f, "\n");
|
||||
dumpTextReverse(nfa, f);
|
||||
fprintf(f, "\n");
|
||||
fclose(f);
|
||||
|
||||
const u32 *subOffset =
|
||||
(const u32 *)((const char *)t + sizeof(struct Tamarama) +
|
||||
t->numSubEngines * sizeof(u32));
|
||||
for (u32 i = 0; i < t->numSubEngines; i++) {
|
||||
fprintf(f, "Sub %u:\n", i);
|
||||
const NFA *sub = (const struct NFA *)((const char *)t + subOffset[i]);
|
||||
nfaDumpText(sub, f);
|
||||
fprintf(f, "\n");
|
||||
|
||||
stringstream sssub;
|
||||
sssub << base << "_sub_" << i;
|
||||
nfaGenerateDumpFiles(sub, sssub.str());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user