summaryrefslogtreecommitdiff
path: root/universal_parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'universal_parser.c')
-rw-r--r--universal_parser.c139
1 files changed, 10 insertions, 129 deletions
diff --git a/universal_parser.c b/universal_parser.c
index 6bfd27282c..84c71748af 100644
--- a/universal_parser.c
+++ b/universal_parser.c
@@ -13,7 +13,6 @@
#include "ruby/backward/2/inttypes.h"
#include "probes.h"
-#define LIKELY(x) RB_LIKELY(x)
#define UNLIKELY(x) RB_UNLIKELY(x)
#ifndef TRUE
# define TRUE 1
@@ -23,20 +22,9 @@
# define FALSE 0
#endif
#define numberof(array) ((int)(sizeof(array) / sizeof((array)[0])))
-#define rb_strlen_lit(str) (sizeof(str "") - 1)
+#define rb_strlen_lit(str) ((sizeof(str "") / sizeof(str ""[0])) - 1)
#undef FIXNUM_MAX
#define FIXNUM_MAX (LONG_MAX / 2)
-#undef RSTRING_GETMEM
-#define RSTRING_GETMEM(str, ptrvar, lenvar) \
- ((ptrvar) = RSTRING_PTR(str), \
- (lenvar) = RSTRING_LEN(str))
-#if defined(USE_FLONUM)
-# /* Take that. */
-#elif SIZEOF_VALUE >= SIZEOF_DOUBLE
-# define USE_FLONUM 1
-#else
-# define USE_FLONUM 0
-#endif
/* parser_st */
#define st_table parser_st_table
@@ -61,31 +49,12 @@
#define st_delete rb_parser_st_delete
#undef st_is_member
#define st_is_member parser_st_is_member
+#undef st_init_table
+#define st_init_table rb_parser_st_init_table
+#undef st_lookup
+#define st_lookup rb_parser_st_lookup
-#define rb_encoding void
-
-#undef T_FLOAT
-#define T_FLOAT 0x04
-#undef T_REGEXP
-#define T_REGEXP 0x06
-#undef T_HASH
-#define T_HASH 0x08
-#undef T_BIGNUM
-#define T_BIGNUM 0x0a
-#undef T_COMPLEX
-#define T_COMPLEX 0x0e
-#undef T_RATIONAL
-#define T_RATIONAL 0x0f
-
-#ifndef INTERNAL_IMEMO_H
-struct rb_imemo_tmpbuf_struct {
- VALUE flags;
- VALUE reserved;
- VALUE *ptr; /* malloc'ed buffer */
- struct rb_imemo_tmpbuf_struct *next; /* next imemo */
- size_t cnt; /* buffer size in VALUE */
-};
-#endif
+#define rb_encoding const void
#undef xmalloc
#define xmalloc p->config->malloc
@@ -111,37 +80,14 @@ struct rb_imemo_tmpbuf_struct {
#undef MEMCPY
#define MEMCPY(p1,p2,type,n) (p->config->nonempty_memcpy((p1), (p2), sizeof(type), (n)))
-#define rb_imemo_tmpbuf_parser_heap p->config->tmpbuf_parser_heap
-
#define compile_callback p->config->compile_callback
#define reg_named_capture_assign p->config->reg_named_capture_assign
-#define rb_obj_freeze p->config->obj_freeze
-#define rb_obj_hide p->config->obj_hide
-#undef RB_TYPE_P
-#define RB_TYPE_P p->config->type_p
-#undef OBJ_FREEZE_RAW
-#define OBJ_FREEZE_RAW p->config->obj_freeze_raw
-
-#undef FIXNUM_P
-#define FIXNUM_P p->config->fixnum_p
-#undef SYMBOL_P
-#define SYMBOL_P p->config->symbol_p
-
#define rb_attr_get p->config->attr_get
-#define rb_ary_new p->config->ary_new
-#define rb_ary_push p->config->ary_push
#undef rb_ary_new_from_args
#define rb_ary_new_from_args p->config->ary_new_from_args
#define rb_ary_unshift p->config->ary_unshift
-#undef rb_ary_new2
-#define rb_ary_new2 p->config->ary_new2
-#define rb_ary_clear p->config->ary_clear
-#define rb_ary_modify p->config->ary_modify
-#undef RARRAY_LEN
-#define RARRAY_LEN p->config->array_len
-#define RARRAY_AREF p->config->array_aref
#define rb_make_temporary_id p->config->make_temporary_id
#define is_local_id p->config->is_local_id
@@ -160,61 +106,32 @@ struct rb_imemo_tmpbuf_struct {
#define rb_id2str p->config->id2str
#undef ID2SYM
#define ID2SYM p->config->id2sym
-#undef SYM2ID
-#define SYM2ID p->config->sym2id
#define rb_str_catf p->config->str_catf
#undef rb_str_cat_cstr
#define rb_str_cat_cstr p->config->str_cat_cstr
-#define rb_str_subseq p->config->str_subseq
-#define rb_str_new_frozen p->config->str_new_frozen
-#define rb_str_buf_new p->config->str_buf_new
-#undef rb_str_buf_cat
-#define rb_str_buf_cat p->config->str_buf_cat
-#define rb_str_modify p->config->str_modify
-#define rb_str_set_len p->config->str_set_len
-#define rb_str_cat p->config->str_cat
#define rb_str_resize p->config->str_resize
#undef rb_str_new
#define rb_str_new p->config->str_new
#undef rb_str_new_cstr
#define rb_str_new_cstr p->config->str_new_cstr
-#define rb_fstring p->config->fstring
-#define is_ascii_string p->config->is_ascii_string
+#define rb_str_to_interned_str p->config->str_to_interned_str
#define rb_enc_str_new p->config->enc_str_new
-#define rb_enc_str_buf_cat p->config->enc_str_buf_cat
-#define rb_str_buf_append p->config->str_buf_append
#define rb_str_vcatf p->config->str_vcatf
-#undef StringValueCStr
-#define StringValueCStr(v) p->config->string_value_cstr(&(v))
#define rb_sprintf p->config->rb_sprintf
#undef RSTRING_PTR
#define RSTRING_PTR p->config->rstring_ptr
-#undef RSTRING_END
-#define RSTRING_END p->config->rstring_end
#undef RSTRING_LEN
#define RSTRING_LEN p->config->rstring_len
-#define rb_filesystem_str_new_cstr p->config->filesystem_str_new_cstr
-#define rb_obj_as_string p->config->obj_as_string
-#define rb_hash_clear p->config->hash_clear
-#define rb_hash_new p->config->hash_new
-#define rb_hash_aset p->config->hash_aset
-#define rb_hash_lookup p->config->hash_lookup
-#define rb_ident_hash_new p->config->ident_hash_new
-
-#undef NUM2INT
-#define NUM2INT p->config->num2int
#undef INT2NUM
#define INT2NUM p->config->int2num
#define rb_stderr_tty_p p->config->stderr_tty_p
#define rb_write_error_str p->config->write_error_str
-#define rb_default_rs p->config->default_rs()
#define rb_io_write p->config->io_write
#define rb_io_flush p->config->io_flush
#define rb_io_puts p->config->io_puts
-#define rb_io_gets_internal p->config->io_gets_internal
#define rb_ractor_stdout p->config->debug_output_stdout
#define rb_ractor_stderr p->config->debug_output_stderr
@@ -229,49 +146,28 @@ struct rb_imemo_tmpbuf_struct {
#define rb_enc_get p->config->enc_get
#define rb_enc_asciicompat p->config->enc_asciicompat
#define rb_utf8_encoding p->config->utf8_encoding
-#define rb_enc_associate p->config->enc_associate
#define rb_ascii8bit_encoding p->config->ascii8bit_encoding
#define rb_enc_codelen p->config->enc_codelen
#define rb_enc_mbcput p->config->enc_mbcput
-#define rb_char_to_option_kcode p->config->char_to_option_kcode
-#define rb_ascii8bit_encindex p->config->ascii8bit_encindex
#define rb_enc_find_index p->config->enc_find_index
#define rb_enc_from_index p->config->enc_from_index
-#define rb_enc_associate_index p->config->enc_associate_index
#define rb_enc_isspace p->config->enc_isspace
#define ENC_CODERANGE_7BIT p->config->enc_coderange_7bit
#define ENC_CODERANGE_UNKNOWN p->config->enc_coderange_unknown
-#define rb_enc_compatible p->config->enc_compatible
-#define rb_enc_from_encoding p->config->enc_from_encoding
-#define ENCODING_GET p->config->encoding_get
-#define ENCODING_SET p->config->encoding_set
-#define ENCODING_IS_ASCII8BIT p->config->encoding_is_ascii8bit
-#define rb_usascii_encoding p->config->usascii_encoding
-
-#define rb_ractor_make_shareable p->config->ractor_make_shareable
#define rb_local_defined p->config->local_defined
#define rb_dvar_defined p->config->dvar_defined
-#define literal_cmp p->config->literal_cmp
-#define literal_hash p->config->literal_hash
-
#define rb_syntax_error_append p->config->syntax_error_append
#define rb_raise p->config->raise
#define syntax_error_new p->config->syntax_error_new
#define rb_errinfo p->config->errinfo
#define rb_set_errinfo p->config->set_errinfo
-#define rb_exc_raise p->config->exc_raise
#define rb_make_exception p->config->make_exception
#define ruby_sized_xfree p->config->sized_xfree
#define SIZED_REALLOC_N(v, T, m, n) ((v) = (T *)p->config->sized_realloc_n((void *)(v), (m), sizeof(T), (n)))
-#undef RB_OBJ_WRITE
-#define RB_OBJ_WRITE(old, slot, young) p->config->obj_write((VALUE)(old), (VALUE *)(slot), (VALUE)(young))
-#undef RB_OBJ_WRITTEN
-#define RB_OBJ_WRITTEN(old, oldv, young) p->config->obj_written((VALUE)(old), (VALUE)(oldv), (VALUE)(young))
-#define rb_gc_register_mark_object p->config->gc_register_mark_object
#undef RB_GC_GUARD
#define RB_GC_GUARD p->config->gc_guard
#define rb_gc_mark p->config->gc_mark
@@ -296,35 +192,20 @@ struct rb_imemo_tmpbuf_struct {
#define ruby_scan_digits p->config->scan_digits
#define strtod p->config->strtod
-#undef RBOOL
-#define RBOOL p->config->rbool
-#undef UNDEF_P
-#define UNDEF_P p->config->undef_p
#undef RTEST
#define RTEST p->config->rtest
#undef NIL_P
#define NIL_P p->config->nil_p
#undef Qnil
#define Qnil p->config->qnil
-#undef Qtrue
-#define Qtrue p->config->qtrue
#undef Qfalse
#define Qfalse p->config->qfalse
-#undef Qundef
-#define Qundef p->config->qundef
#define rb_eArgError p->config->eArgError()
-#define rb_mRubyVMFrozenCore p->config->mRubyVMFrozenCore()
#undef rb_long2int
#define rb_long2int p->config->long2int
-#undef SPECIAL_CONST_P
-#define SPECIAL_CONST_P p->config->special_const_p
-#undef BUILTIN_TYPE
-#define BUILTIN_TYPE p->config->builtin_type
-
-#define rb_node_case_when_optimizable_literal p->config->node_case_when_optimizable_literal
-
-#undef st_init_table_with_size
-#define st_init_table_with_size rb_parser_st_init_table_with_size
+#define rb_enc_mbminlen p->config->enc_mbminlen
+#define rb_enc_isascii p->config->enc_isascii
+#define rb_enc_mbc_to_codepoint p->config->enc_mbc_to_codepoint
#define rb_ast_new() \
rb_ast_new(p->config)