jeger/source/jeger.h
2023-09-23 16:52:45 +02:00

34 lines
756 B
C

#ifndef JEGER_H
#define JEGER_H
#include <stdbool.h>
#include "vector.h"
extern bool is_case_on;
typedef struct {
int accepting_state;
char * str;
vector_t delta_table; // <delta_t>
vector_t catch_table; // <offshoot_t>
} regex_t;
typedef struct {
union {
int position;
const char * _pos_ptr;
};
int width;
} match_t;
extern regex_t * regex_compile(const char * const pattern);
extern int regex_free(regex_t * const regex);
extern bool regex_search(const regex_t * const regex, const char * const string);
extern match_t * regex_match(const regex_t * const regex, const char * const string, const bool start_of_string);
extern bool is_magic(const char c);
extern bool is_sentinel(const match_t * const match);
#endif