libgpac
Documentation of the core library of GPAC
Loading...
Searching...
No Matches
libregexp.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <inttypes.h>
#include <string.h>
#include <assert.h>
#include "cutils.h"
#include "libregexp.h"
#include "libunicode.h"
#include "libregexp-opcode.h"
+ Include dependency graph for libregexp.c:

Data Structures

struct  REParseState
 
struct  REOpCode
 
struct  REString
 
struct  REStringList
 
struct  REExecState
 
struct  REExecContext
 
union  REParseState.u
 

Macros

#define DEF(id, size)   REOP_ ## id,
 
#define CAPTURE_COUNT_MAX   255
 
#define STACK_SIZE_MAX   255
 
#define INTERRUPT_COUNTER_INIT   10000
 
#define CP_LS   0x2028
 
#define CP_PS   0x2029
 
#define TMP_BUF_SIZE   128
 
#define DEF(id, size)   { size },
 
#define RE_HEADER_FLAGS   0
 
#define RE_HEADER_CAPTURE_COUNT   2
 
#define RE_HEADER_STACK_SIZE   3
 
#define RE_HEADER_BYTECODE_LEN   4
 
#define RE_HEADER_LEN   8
 
#define CLASS_RANGE_BASE   0x40000000
 
#define GET_CHAR(c, cptr, cbuf_end, cbuf_type)
 
#define PEEK_CHAR(c, cptr, cbuf_end, cbuf_type)
 
#define PEEK_PREV_CHAR(c, cptr, cbuf_start, cbuf_type)
 
#define GET_PREV_CHAR(c, cptr, cbuf_start, cbuf_type)
 
#define PREV_CHAR(cptr, cbuf_start, cbuf_type)
 

Typedefs

typedef uintptr_t StackInt
 

Enumerations

enum  REOPCodeEnum { REOP_COUNT }
 
enum  CharRangeEnum {
  CHAR_RANGE_d , CHAR_RANGE_D , CHAR_RANGE_s , CHAR_RANGE_S ,
  CHAR_RANGE_w , CHAR_RANGE_W
}
 
enum  REExecStateEnum { RE_EXEC_STATE_SPLIT , RE_EXEC_STATE_LOOKAHEAD , RE_EXEC_STATE_NEGATIVE_LOOKAHEAD , RE_EXEC_STATE_GREEDY_QUANT }
 

Functions

static int is_digit (int c)
 
static int dbuf_insert (DynBuf *s, int pos, int len)
 
static uint32_t re_string_hash (int len, const uint32_t *buf)
 
static void re_string_list_init (REParseState *s1, REStringList *s)
 
static void re_string_list_free (REStringList *s)
 
static void lre_print_char (int c, BOOL is_range)
 
static __maybe_unused void re_string_list_dump (const char *str, const REStringList *s)
 
static int re_string_find2 (REStringList *s, int len, const uint32_t *buf, uint32_t h0, BOOL add_flag)
 
static int re_string_find (REStringList *s, int len, const uint32_t *buf, BOOL add_flag)
 
static int re_string_add (REStringList *s, int len, const uint32_t *buf)
 
static int re_string_list_op (REStringList *a, REStringList *b, int op)
 
static int re_string_list_canonicalize (REParseState *s1, REStringList *s, BOOL is_unicode)
 
static int cr_init_char_range (REParseState *s, REStringList *cr, uint32_t c)
 
static void re_emit_op (REParseState *s, int op)
 
static int re_emit_op_u32 (REParseState *s, int op, uint32_t val)
 
static int re_emit_goto (REParseState *s, int op, uint32_t val)
 
static void re_emit_op_u8 (REParseState *s, int op, uint32_t val)
 
static void re_emit_op_u16 (REParseState *s, int op, uint32_t val)
 
static int __attribute__ ((format(printf, 2, 3)))
 
static int re_parse_out_of_memory (REParseState *s)
 
static int parse_digits (const uint8_t **pp, BOOL allow_overflow)
 
static int re_parse_expect (REParseState *s, const uint8_t **pp, int c)
 
int lre_parse_escape (const uint8_t **pp, int allow_utf16)
 
static BOOL is_unicode_char (int c)
 
static void seq_prop_cb (void *opaque, const uint32_t *seq, int seq_len)
 
static int parse_unicode_property (REParseState *s, REStringList *cr, const uint8_t **pp, BOOL is_inv, BOOL allow_sequence_prop)
 
static int get_class_atom (REParseState *s, REStringList *cr, const uint8_t **pp, BOOL inclass)
 
static int parse_class_string_disjunction (REParseState *s, REStringList *cr, const uint8_t **pp)
 
static int re_emit_range (REParseState *s, const CharRange *cr)
 
static int re_string_cmp_len (const void *a, const void *b, void *arg)
 
static void re_emit_char (REParseState *s, int c)
 
static int re_emit_string_list (REParseState *s, const REStringList *sl)
 
static int re_parse_nested_class (REParseState *s, REStringList *cr, const uint8_t **pp)
 
static int re_parse_class_set_operand (REParseState *s, REStringList *cr, const uint8_t **pp)
 
static int re_parse_char_class (REParseState *s, const uint8_t **pp)
 
static BOOL re_need_check_advance (const uint8_t *bc_buf, int bc_buf_len)
 
static int re_is_simple_quantifier (const uint8_t *bc_buf, int bc_buf_len)
 
static int re_parse_group_name (char *buf, int buf_size, const uint8_t **pp)
 
static int re_parse_captures (REParseState *s, int *phas_named_captures, const char *capture_name)
 
static int re_count_captures (REParseState *s)
 
static BOOL re_has_named_captures (REParseState *s)
 
static int find_group_name (REParseState *s, const char *name)
 
static int re_parse_disjunction (REParseState *s, BOOL is_backward_dir)
 
static int re_parse_modifiers (REParseState *s, const uint8_t **pp)
 
static BOOL update_modifier (BOOL val, int add_mask, int remove_mask, int mask)
 
static int re_parse_term (REParseState *s, BOOL is_backward_dir)
 
static int re_parse_alternative (REParseState *s, BOOL is_backward_dir)
 
static int compute_stack_size (const uint8_t *bc_buf, int bc_buf_len)
 
static void * lre_bytecode_realloc (void *opaque, void *ptr, size_t size)
 
uint8_tlre_compile (int *plen, char *error_msg, int error_msg_size, const char *buf, size_t buf_len, int re_flags, void *opaque)
 
static BOOL is_line_terminator (uint32_t c)
 
static BOOL is_word_char (uint32_t c)
 
static int push_state (REExecContext *s, uint8_t **capture, StackInt *stack, size_t stack_len, const uint8_t *pc, const uint8_t *cptr, REExecStateEnum type, size_t count)
 
static int lre_poll_timeout (REExecContext *s)
 
static intptr_t lre_exec_backtrack (REExecContext *s, uint8_t **capture, StackInt *stack, int stack_len, const uint8_t *pc, const uint8_t *cptr, BOOL no_recurse)
 
int lre_exec (uint8_t **capture, const uint8_t *bc_buf, const uint8_t *cbuf, int cindex, int clen, int cbuf_type, void *opaque)
 
int lre_get_capture_count (const uint8_t *bc_buf)
 
int lre_get_flags (const uint8_t *bc_buf)
 
const char * lre_get_groupnames (const uint8_t *bc_buf)
 

Variables

static const REOpCode reopcode_info [REOP_COUNT]
 
static const uint16_t char_range_d []
 
static const uint16_t char_range_s []
 
static const uint16_t char_range_w []
 
static const uint16_t *const char_range_table []
 

Data Structure Documentation

◆ REParseState

struct REParseState
+ Collaboration diagram for REParseState:
Data Fields
DynBuf byte_code
const uint8_t * buf_ptr
const uint8_t * buf_end
const uint8_t * buf_start
int re_flags
BOOL is_unicode
BOOL unicode_sets
BOOL ignore_case
BOOL multi_line
BOOL dotall
int capture_count
int total_capture_count
int has_named_captures
void * opaque
DynBuf group_names
union REParseState.u u

◆ REOpCode

struct REOpCode
Data Fields
uint8_t size

◆ REString

struct REString
+ Collaboration diagram for REString:
Data Fields
struct REString * next
uint32_t hash
uint32_t len
uint32_t buf[]

◆ REStringList

struct REStringList
+ Collaboration diagram for REStringList:
Data Fields
CharRange cr
uint32_t n_strings
uint32_t hash_size
int hash_bits
REString ** hash_table

◆ REExecState

struct REExecState
Data Fields
REExecStateEnum type: 8
uint8_t stack_len
size_t count
const uint8_t * cptr
const uint8_t * pc
void * buf[0]

◆ REExecContext

struct REExecContext
Data Fields
const uint8_t * cbuf
const uint8_t * cbuf_end
int cbuf_type
int capture_count
int stack_size_max
BOOL is_unicode
int interrupt_counter
void * opaque
size_t state_size
uint8_t * state_stack
size_t state_stack_size
size_t state_stack_len

◆ REParseState.u

union REParseState.u
Data Fields
char error_msg[TMP_BUF_SIZE]
char tmp_buf[TMP_BUF_SIZE]

Macro Definition Documentation

◆ DEF [1/2]

#define DEF (   id,
  size 
)    REOP_ ## id,

◆ CAPTURE_COUNT_MAX

#define CAPTURE_COUNT_MAX   255

◆ STACK_SIZE_MAX

#define STACK_SIZE_MAX   255

◆ INTERRUPT_COUNTER_INIT

#define INTERRUPT_COUNTER_INIT   10000

◆ CP_LS

#define CP_LS   0x2028

◆ CP_PS

#define CP_PS   0x2029

◆ TMP_BUF_SIZE

#define TMP_BUF_SIZE   128

◆ DEF [2/2]

#define DEF (   id,
  size 
)    { size },

◆ RE_HEADER_FLAGS

#define RE_HEADER_FLAGS   0

◆ RE_HEADER_CAPTURE_COUNT

#define RE_HEADER_CAPTURE_COUNT   2

◆ RE_HEADER_STACK_SIZE

#define RE_HEADER_STACK_SIZE   3

◆ RE_HEADER_BYTECODE_LEN

#define RE_HEADER_BYTECODE_LEN   4

◆ RE_HEADER_LEN

#define RE_HEADER_LEN   8

◆ CLASS_RANGE_BASE

#define CLASS_RANGE_BASE   0x40000000

◆ GET_CHAR

#define GET_CHAR (   c,
  cptr,
  cbuf_end,
  cbuf_type 
)
Value:
do { \
if (cbuf_type == 0) { \
c = *cptr++; \
} else { \
const uint16_t *_p = (const uint16_t *)cptr; \
const uint16_t *_end = (const uint16_t *)cbuf_end; \
c = *_p++; \
if (is_hi_surrogate(c) && cbuf_type == 2) { \
if (_p < _end && is_lo_surrogate(*_p)) { \
c = from_surrogate(c, *_p++); \
} \
} \
cptr = (const void *)_p; \
} \
} while (0)
static BOOL is_lo_surrogate(uint32_t c)
Definition cutils.h:409
static uint32_t from_surrogate(uint32_t hi, uint32_t lo)
Definition cutils.h:424
static BOOL is_hi_surrogate(uint32_t c)
Definition cutils.h:404
unsigned short uint16_t
Definition inttypes.h:14

◆ PEEK_CHAR

#define PEEK_CHAR (   c,
  cptr,
  cbuf_end,
  cbuf_type 
)
Value:
do { \
if (cbuf_type == 0) { \
c = cptr[0]; \
} else { \
const uint16_t *_p = (const uint16_t *)cptr; \
const uint16_t *_end = (const uint16_t *)cbuf_end; \
c = *_p++; \
if (is_hi_surrogate(c) && cbuf_type == 2) { \
if (_p < _end && is_lo_surrogate(*_p)) { \
c = from_surrogate(c, *_p); \
} \
} \
} \
} while (0)

◆ PEEK_PREV_CHAR

#define PEEK_PREV_CHAR (   c,
  cptr,
  cbuf_start,
  cbuf_type 
)
Value:
do { \
if (cbuf_type == 0) { \
c = cptr[-1]; \
} else { \
const uint16_t *_p = (const uint16_t *)cptr - 1; \
const uint16_t *_start = (const uint16_t *)cbuf_start; \
c = *_p; \
if (is_lo_surrogate(c) && cbuf_type == 2) { \
if (_p > _start && is_hi_surrogate(_p[-1])) { \
c = from_surrogate(*--_p, c); \
} \
} \
} \
} while (0)

◆ GET_PREV_CHAR

#define GET_PREV_CHAR (   c,
  cptr,
  cbuf_start,
  cbuf_type 
)
Value:
do { \
if (cbuf_type == 0) { \
cptr--; \
c = cptr[0]; \
} else { \
const uint16_t *_p = (const uint16_t *)cptr - 1; \
const uint16_t *_start = (const uint16_t *)cbuf_start; \
c = *_p; \
if (is_lo_surrogate(c) && cbuf_type == 2) { \
if (_p > _start && is_hi_surrogate(_p[-1])) { \
c = from_surrogate(*--_p, c); \
} \
} \
cptr = (const void *)_p; \
} \
} while (0)

◆ PREV_CHAR

#define PREV_CHAR (   cptr,
  cbuf_start,
  cbuf_type 
)
Value:
do { \
if (cbuf_type == 0) { \
cptr--; \
} else { \
const uint16_t *_p = (const uint16_t *)cptr - 1; \
const uint16_t *_start = (const uint16_t *)cbuf_start; \
if (is_lo_surrogate(*_p) && cbuf_type == 2) { \
if (_p > _start && is_hi_surrogate(_p[-1])) { \
--_p; \
} \
} \
cptr = (const void *)_p; \
} \
} while (0)

Typedef Documentation

◆ StackInt

typedef uintptr_t StackInt

Enumeration Type Documentation

◆ REOPCodeEnum

Enumerator
REOP_COUNT 

◆ CharRangeEnum

Enumerator
CHAR_RANGE_d 
CHAR_RANGE_D 
CHAR_RANGE_s 
CHAR_RANGE_S 
CHAR_RANGE_w 
CHAR_RANGE_W 

◆ REExecStateEnum

Enumerator
RE_EXEC_STATE_SPLIT 
RE_EXEC_STATE_LOOKAHEAD 
RE_EXEC_STATE_NEGATIVE_LOOKAHEAD 
RE_EXEC_STATE_GREEDY_QUANT 

Function Documentation

◆ is_digit()

static int is_digit ( int  c)
static
+ Here is the caller graph for this function:

◆ dbuf_insert()

static int dbuf_insert ( DynBuf s,
int  pos,
int  len 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_string_hash()

static uint32_t re_string_hash ( int  len,
const uint32_t buf 
)
static
+ Here is the caller graph for this function:

◆ re_string_list_init()

static void re_string_list_init ( REParseState s1,
REStringList s 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_string_list_free()

static void re_string_list_free ( REStringList s)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lre_print_char()

static void lre_print_char ( int  c,
BOOL  is_range 
)
static
+ Here is the caller graph for this function:

◆ re_string_list_dump()

static __maybe_unused void re_string_list_dump ( const char *  str,
const REStringList s 
)
static
+ Here is the call graph for this function:

◆ re_string_find2()

static int re_string_find2 ( REStringList s,
int  len,
const uint32_t buf,
uint32_t  h0,
BOOL  add_flag 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_string_find()

static int re_string_find ( REStringList s,
int  len,
const uint32_t buf,
BOOL  add_flag 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_string_add()

static int re_string_add ( REStringList s,
int  len,
const uint32_t buf 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_string_list_op()

static int re_string_list_op ( REStringList a,
REStringList b,
int  op 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_string_list_canonicalize()

static int re_string_list_canonicalize ( REParseState s1,
REStringList s,
BOOL  is_unicode 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cr_init_char_range()

static int cr_init_char_range ( REParseState s,
REStringList cr,
uint32_t  c 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_emit_op()

static void re_emit_op ( REParseState s,
int  op 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_emit_op_u32()

static int re_emit_op_u32 ( REParseState s,
int  op,
uint32_t  val 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_emit_goto()

static int re_emit_goto ( REParseState s,
int  op,
uint32_t  val 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_emit_op_u8()

static void re_emit_op_u8 ( REParseState s,
int  op,
uint32_t  val 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_emit_op_u16()

static void re_emit_op_u16 ( REParseState s,
int  op,
uint32_t  val 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ __attribute__()

static int __attribute__ ( (format(printf, 2, 3))  )
static

◆ re_parse_out_of_memory()

static int re_parse_out_of_memory ( REParseState s)
static
+ Here is the caller graph for this function:

◆ parse_digits()

static int parse_digits ( const uint8_t **  pp,
BOOL  allow_overflow 
)
static
+ Here is the caller graph for this function:

◆ re_parse_expect()

static int re_parse_expect ( REParseState s,
const uint8_t **  pp,
int  c 
)
static
+ Here is the caller graph for this function:

◆ lre_parse_escape()

int lre_parse_escape ( const uint8_t **  pp,
int  allow_utf16 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ is_unicode_char()

static BOOL is_unicode_char ( int  c)
static
+ Here is the caller graph for this function:

◆ seq_prop_cb()

static void seq_prop_cb ( void *  opaque,
const uint32_t seq,
int  seq_len 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ parse_unicode_property()

static int parse_unicode_property ( REParseState s,
REStringList cr,
const uint8_t **  pp,
BOOL  is_inv,
BOOL  allow_sequence_prop 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ get_class_atom()

static int get_class_atom ( REParseState s,
REStringList cr,
const uint8_t **  pp,
BOOL  inclass 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ parse_class_string_disjunction()

static int parse_class_string_disjunction ( REParseState s,
REStringList cr,
const uint8_t **  pp 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_emit_range()

static int re_emit_range ( REParseState s,
const CharRange cr 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_string_cmp_len()

static int re_string_cmp_len ( const void *  a,
const void *  b,
void *  arg 
)
static
+ Here is the caller graph for this function:

◆ re_emit_char()

static void re_emit_char ( REParseState s,
int  c 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_emit_string_list()

static int re_emit_string_list ( REParseState s,
const REStringList sl 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_parse_nested_class()

static int re_parse_nested_class ( REParseState s,
REStringList cr,
const uint8_t **  pp 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_parse_class_set_operand()

static int re_parse_class_set_operand ( REParseState s,
REStringList cr,
const uint8_t **  pp 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_parse_char_class()

static int re_parse_char_class ( REParseState s,
const uint8_t **  pp 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_need_check_advance()

static BOOL re_need_check_advance ( const uint8_t bc_buf,
int  bc_buf_len 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_is_simple_quantifier()

static int re_is_simple_quantifier ( const uint8_t bc_buf,
int  bc_buf_len 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_parse_group_name()

static int re_parse_group_name ( char *  buf,
int  buf_size,
const uint8_t **  pp 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_parse_captures()

static int re_parse_captures ( REParseState s,
int *  phas_named_captures,
const char *  capture_name 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_count_captures()

static int re_count_captures ( REParseState s)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_has_named_captures()

static BOOL re_has_named_captures ( REParseState s)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ find_group_name()

static int find_group_name ( REParseState s,
const char *  name 
)
static
+ Here is the caller graph for this function:

◆ re_parse_disjunction()

static int re_parse_disjunction ( REParseState s,
BOOL  is_backward_dir 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_parse_modifiers()

static int re_parse_modifiers ( REParseState s,
const uint8_t **  pp 
)
static
+ Here is the caller graph for this function:

◆ update_modifier()

static BOOL update_modifier ( BOOL  val,
int  add_mask,
int  remove_mask,
int  mask 
)
static
+ Here is the caller graph for this function:

◆ re_parse_term()

static int re_parse_term ( REParseState s,
BOOL  is_backward_dir 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ re_parse_alternative()

static int re_parse_alternative ( REParseState s,
BOOL  is_backward_dir 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compute_stack_size()

static int compute_stack_size ( const uint8_t bc_buf,
int  bc_buf_len 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lre_bytecode_realloc()

static void * lre_bytecode_realloc ( void *  opaque,
void *  ptr,
size_t  size 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lre_compile()

uint8_t * lre_compile ( int *  plen,
char *  error_msg,
int  error_msg_size,
const char *  buf,
size_t  buf_len,
int  re_flags,
void *  opaque 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ is_line_terminator()

static BOOL is_line_terminator ( uint32_t  c)
static
+ Here is the caller graph for this function:

◆ is_word_char()

static BOOL is_word_char ( uint32_t  c)
static
+ Here is the caller graph for this function:

◆ push_state()

static int push_state ( REExecContext s,
uint8_t **  capture,
StackInt stack,
size_t  stack_len,
const uint8_t pc,
const uint8_t cptr,
REExecStateEnum  type,
size_t  count 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lre_poll_timeout()

static int lre_poll_timeout ( REExecContext s)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lre_exec_backtrack()

static intptr_t lre_exec_backtrack ( REExecContext s,
uint8_t **  capture,
StackInt stack,
int  stack_len,
const uint8_t pc,
const uint8_t cptr,
BOOL  no_recurse 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lre_exec()

int lre_exec ( uint8_t **  capture,
const uint8_t bc_buf,
const uint8_t cbuf,
int  cindex,
int  clen,
int  cbuf_type,
void *  opaque 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lre_get_capture_count()

int lre_get_capture_count ( const uint8_t bc_buf)
+ Here is the caller graph for this function:

◆ lre_get_flags()

int lre_get_flags ( const uint8_t bc_buf)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lre_get_groupnames()

const char * lre_get_groupnames ( const uint8_t bc_buf)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ reopcode_info

const REOpCode reopcode_info[REOP_COUNT]
static
Initial value:
= {
#define DEF(id, size)
}

◆ char_range_d

const uint16_t char_range_d[]
static
Initial value:
= {
1,
0x0030, 0x0039 + 1,
}

◆ char_range_s

const uint16_t char_range_s[]
static
Initial value:
= {
10,
0x0009, 0x000D + 1,
0x0020, 0x0020 + 1,
0x00A0, 0x00A0 + 1,
0x1680, 0x1680 + 1,
0x2000, 0x200A + 1,
0x2028, 0x2029 + 1,
0x202F, 0x202F + 1,
0x205F, 0x205F + 1,
0x3000, 0x3000 + 1,
0xFEFF, 0xFEFF + 1,
}

◆ char_range_w

const uint16_t char_range_w[]
static
Initial value:
= {
4,
0x0030, 0x0039 + 1,
0x0041, 0x005A + 1,
0x005F, 0x005F + 1,
0x0061, 0x007A + 1,
}

◆ char_range_table

const uint16_t* const char_range_table[]
static
Initial value:
= {
}
static const uint16_t char_range_w[]
Definition libregexp.c:408
static const uint16_t char_range_s[]
Definition libregexp.c:391
static const uint16_t char_range_d[]
Definition libregexp.c:385