Ruby  3.4.0dev (2024-12-06 revision 892c46283a5ea4179500d951c9d4866c0051f27b)
regexp.h
Go to the documentation of this file.
1 
6 #ifndef PRISM_REGEXP_H
7 #define PRISM_REGEXP_H
8 
9 #include "prism/defines.h"
10 #include "prism/parser.h"
11 #include "prism/encoding.h"
12 #include "prism/util/pm_memchr.h"
13 #include "prism/util/pm_string.h"
14 
15 #include <stdbool.h>
16 #include <stddef.h>
17 #include <string.h>
18 
22 typedef void (*pm_regexp_name_callback_t)(const pm_string_t *name, void *data);
23 
27 typedef void (*pm_regexp_error_callback_t)(const uint8_t *start, const uint8_t *end, const char *message, void *data);
28 
41 PRISM_EXPORTED_FUNCTION void pm_regexp_parse(pm_parser_t *parser, const uint8_t *source, size_t size, bool extended_mode, pm_regexp_name_callback_t name_callback, void *name_data, pm_regexp_error_callback_t error_callback, void *error_data);
42 
43 #endif
The parser used to parse Ruby source.
A custom memchr implementation.
A generic string type that can have various ownership semantics.
Macro definitions used throughout the prism library.
#define PRISM_EXPORTED_FUNCTION
By default, we compile with -fvisibility=hidden.
Definition: defines.h:50
The encoding interface and implementations used by the parser.
void(* pm_regexp_error_callback_t)(const uint8_t *start, const uint8_t *end, const char *message, void *data)
This callback is called when a parse error is found.
Definition: regexp.h:27
PRISM_EXPORTED_FUNCTION void pm_regexp_parse(pm_parser_t *parser, const uint8_t *source, size_t size, bool extended_mode, pm_regexp_name_callback_t name_callback, void *name_data, pm_regexp_error_callback_t error_callback, void *error_data)
Parse a regular expression.
Definition: regexp.c:777
void(* pm_regexp_name_callback_t)(const pm_string_t *name, void *data)
This callback is called when a named capture group is found.
Definition: regexp.h:22
C99 shim for <stdbool.h>
This struct represents the overall parser.
Definition: parser.h:640
A generic string type that can have various ownership semantics.
Definition: pm_string.h:33