diff --git a/external/parse.h b/external/parse.h index 08840c6431effd..c47ccb8d991616 100644 --- a/external/parse.h +++ b/external/parse.h @@ -74,6 +74,10 @@ typedef struct rb_parser_config_struct { // VALUE rb_syntax_error_append(VALUE, VALUE, int, int, rb_encoding*, const char*, va_list); VALUE (*syntax_error_append)(VALUE, VALUE, int, int, const void*, const char*, va_list); + /* Re */ + VALUE (*reg_compile)(VALUE str, int options, const char *sourcefile, int sourceline); + VALUE (*reg_check_preprocess)(VALUE str); + } rb_parser_config_t; typedef struct parser_params rb_parser_t; diff --git a/parse.y b/parse.y index 989de39e84c713..ab289e3d0e8087 100644 --- a/parse.y +++ b/parse.y @@ -43,7 +43,6 @@ struct lex_context; #include "internal/compilers.h" #include "internal/encoding.h" #include "internal/imemo.h" -#include "internal/re.h" #include "internal/symbol.h" #include "internal/variable.h" #include "probes.h" @@ -63,6 +62,7 @@ struct lex_context; #include "internal/hash.h" #include "internal/io.h" #include "internal/rational.h" +#include "internal/re.h" #include "internal/thread.h" #endif @@ -154,6 +154,8 @@ RBIMPL_WARNING_POP() #define rb_builtin_class_name p->config.builtin_class_name #define rb_syntax_error_append p->config.syntax_error_append +#define rb_reg_compile p->config.reg_compile +#define rb_reg_check_preprocess p->config.reg_check_preprocess #endif diff --git a/ruby_parser.c b/ruby_parser.c index 84390d0dae6511..9b4583353e1e75 100644 --- a/ruby_parser.c +++ b/ruby_parser.c @@ -9,6 +9,7 @@ #include "internal/io.h" #include "internal/parse.h" #include "internal/rational.h" +#include "internal/re.h" #include "internal/ruby_parser.h" #include "internal/string.h" #include "internal/thread.h" @@ -166,6 +167,9 @@ rb_parser_config_initialize(rb_parser_config_t *config) config->builtin_class_name = rb_builtin_class_name; config->syntax_error_append = syntax_error_append; + + config->reg_compile = rb_reg_compile; + config->reg_check_preprocess = rb_reg_check_preprocess; } VALUE