libregexis024/src/libregexis024sol/expr_compiler.h

35 lines
891 B
C
Raw Normal View History

2024-07-28 16:54:57 +00:00
#ifndef LIBREGEXIS024_EXPR_COMPILER_H
#define LIBREGEXIS024_EXPR_COMPILER_H
#include <string>
#include <vector>
#include <stdint.h>
// todo: SUPER HIGHT PRIORITY: MOVE all this spaces digits variable_constituents junk out of this class
// todo: also PLEEEASE, write static before literally nearly every single one little stupid function in this library
#include <libregexis024sol/part_of_expr_that_tracks.h>
struct REGEX_IS024_MeaningContext{
size_t input_size;
const uint8_t* input;
bool error = false;
std::string error_msg;
size_t pos = 0;
bool have_comment_tail = false;
size_t comment_tail_start;
std::vector<uint8_t> compiled_program;
KnownTrackingTools ktr;
uint16_t free_selarr_tai = 0;
uint16_t free_colarr_tai = 0;
REGEX_IS024_MeaningContext(size_t inputSize, const char *input);
};
#endif //LIBREGEXIS024_EXPR_COMPILER_H