35 lines
891 B
C
35 lines
891 B
C
|
#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
|