libregexis024/src/libregexis024sol/part_of_expr_that_tracks.h

33 lines
804 B
C++

#ifndef PART_OF_EXPR_THAT_TRACKS_H
#define PART_OF_EXPR_THAT_TRACKS_H
#include <map>
#include <vector>
#include <string>
#include <libregexis024fa/tracking_variables.h>
namespace regexis024 {
struct SubtrackingNameInfo{
bool stored_in_ca = true;
bool stored_in_sa = false;
bool discovered = false;
tracking_var_type_t type;
/* These fields will be -1 if unused */
int colarr_first = -1;
int colarr_second = -1;
bool used_in_sifting = false;
bool minimizing = false;
int selarr_first = -1;
int selarr_second = -1;
};
struct KnownTrackingTools {
std::map<std::string, int64_t> track_names;
std::vector<SubtrackingNameInfo> retrieval_info;
};
}
#endif //PART_OF_EXPR_THAT_TRACKS_H