Created
February 11, 2025 09:58
-
-
Save udzura/4339f423829ee63185db895d4d4fdd26 to your computer and use it in GitHub Desktop.
mruby/c 1.2 で実装されているCレベルメソッド(定義箇所の抜粋)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
mrbc_define_method(vm, mrbc_class_array, "new", c_array_new); | |
mrbc_define_method(vm, mrbc_class_array, "+", c_array_add); | |
mrbc_define_method(vm, mrbc_class_array, "[]", c_array_get); | |
mrbc_define_method(vm, mrbc_class_array, "at", c_array_get); | |
mrbc_define_method(vm, mrbc_class_array, "[]=", c_array_set); | |
mrbc_define_method(vm, mrbc_class_array, "<<", c_array_push); | |
mrbc_define_method(vm, mrbc_class_array, "clear", c_array_clear); | |
mrbc_define_method(vm, mrbc_class_array, "delete_at", c_array_delete_at); | |
mrbc_define_method(vm, mrbc_class_array, "empty?", c_array_empty); | |
mrbc_define_method(vm, mrbc_class_array, "size", c_array_size); | |
mrbc_define_method(vm, mrbc_class_array, "length", c_array_size); | |
mrbc_define_method(vm, mrbc_class_array, "count", c_array_size); | |
mrbc_define_method(vm, mrbc_class_array, "index", c_array_index); | |
mrbc_define_method(vm, mrbc_class_array, "first", c_array_first); | |
mrbc_define_method(vm, mrbc_class_array, "last", c_array_last); | |
mrbc_define_method(vm, mrbc_class_array, "push", c_array_push); | |
mrbc_define_method(vm, mrbc_class_array, "pop", c_array_pop); | |
mrbc_define_method(vm, mrbc_class_array, "shift", c_array_shift); | |
mrbc_define_method(vm, mrbc_class_array, "unshift", c_array_unshift); | |
mrbc_define_method(vm, mrbc_class_array, "dup", c_array_dup); | |
mrbc_define_method(vm, mrbc_class_array, "min", c_array_min); | |
mrbc_define_method(vm, mrbc_class_array, "max", c_array_max); | |
mrbc_define_method(vm, mrbc_class_array, "minmax", c_array_minmax); | |
mrbc_define_method(vm, mrbc_class_array, "inspect", c_array_inspect); | |
mrbc_define_method(vm, mrbc_class_array, "to_s", c_array_inspect); | |
mrbc_define_method(vm, mrbc_class_array, "join", c_array_join); | |
mrbc_define_method(vm, mrbc_class_hash, "new", c_hash_new); | |
mrbc_define_method(vm, mrbc_class_hash, "[]", c_hash_get); | |
mrbc_define_method(vm, mrbc_class_hash, "[]=", c_hash_set); | |
mrbc_define_method(vm, mrbc_class_hash, "clear", c_hash_clear); | |
mrbc_define_method(vm, mrbc_class_hash, "dup", c_hash_dup); | |
mrbc_define_method(vm, mrbc_class_hash, "delete", c_hash_delete); | |
mrbc_define_method(vm, mrbc_class_hash, "empty?", c_hash_empty); | |
mrbc_define_method(vm, mrbc_class_hash, "has_key?", c_hash_has_key); | |
mrbc_define_method(vm, mrbc_class_hash, "has_value?", c_hash_has_value); | |
mrbc_define_method(vm, mrbc_class_hash, "key", c_hash_key); | |
mrbc_define_method(vm, mrbc_class_hash, "keys", c_hash_keys); | |
mrbc_define_method(vm, mrbc_class_hash, "size", c_hash_size); | |
mrbc_define_method(vm, mrbc_class_hash, "length", c_hash_size); | |
mrbc_define_method(vm, mrbc_class_hash, "count", c_hash_size); | |
mrbc_define_method(vm, mrbc_class_hash, "merge", c_hash_merge); | |
mrbc_define_method(vm, mrbc_class_hash, "merge!", c_hash_merge_self); | |
mrbc_define_method(vm, mrbc_class_hash, "to_h", c_ineffect); | |
mrbc_define_method(vm, mrbc_class_hash, "values", c_hash_values); | |
mrbc_define_method(vm, mrbc_class_hash, "inspect", c_hash_inspect); | |
mrbc_define_method(vm, mrbc_class_hash, "to_s", c_hash_inspect); | |
mrbc_define_method(vm, mrbc_class_math, "acos", c_math_acos); | |
mrbc_define_method(vm, mrbc_class_math, "acosh", c_math_acosh); | |
mrbc_define_method(vm, mrbc_class_math, "asin", c_math_asin); | |
mrbc_define_method(vm, mrbc_class_math, "asinh", c_math_asinh); | |
mrbc_define_method(vm, mrbc_class_math, "atan", c_math_atan); | |
mrbc_define_method(vm, mrbc_class_math, "atan2", c_math_atan2); | |
mrbc_define_method(vm, mrbc_class_math, "atanh", c_math_atanh); | |
mrbc_define_method(vm, mrbc_class_math, "cbrt", c_math_cbrt); | |
mrbc_define_method(vm, mrbc_class_math, "cos", c_math_cos); | |
mrbc_define_method(vm, mrbc_class_math, "cosh", c_math_cosh); | |
mrbc_define_method(vm, mrbc_class_math, "erf", c_math_erf); | |
mrbc_define_method(vm, mrbc_class_math, "erfc", c_math_erfc); | |
mrbc_define_method(vm, mrbc_class_math, "exp", c_math_exp); | |
mrbc_define_method(vm, mrbc_class_math, "hypot", c_math_hypot); | |
mrbc_define_method(vm, mrbc_class_math, "ldexp", c_math_ldexp); | |
mrbc_define_method(vm, mrbc_class_math, "log", c_math_log); | |
mrbc_define_method(vm, mrbc_class_math, "log10", c_math_log10); | |
mrbc_define_method(vm, mrbc_class_math, "log2", c_math_log2); | |
mrbc_define_method(vm, mrbc_class_math, "sin", c_math_sin); | |
mrbc_define_method(vm, mrbc_class_math, "sinh", c_math_sinh); | |
mrbc_define_method(vm, mrbc_class_math, "sqrt", c_math_sqrt); | |
mrbc_define_method(vm, mrbc_class_math, "tan", c_math_tan); | |
mrbc_define_method(vm, mrbc_class_math, "tanh", c_math_tanh); | |
mrbc_define_method(vm, mrbc_class_fixnum, "[]", c_fixnum_bitref); | |
mrbc_define_method(vm, mrbc_class_fixnum, "-@", c_fixnum_negative); | |
mrbc_define_method(vm, mrbc_class_fixnum, "**", c_fixnum_power); | |
mrbc_define_method(vm, mrbc_class_fixnum, "%", c_fixnum_mod); | |
mrbc_define_method(vm, mrbc_class_fixnum, "&", c_fixnum_and); | |
mrbc_define_method(vm, mrbc_class_fixnum, "|", c_fixnum_or); | |
mrbc_define_method(vm, mrbc_class_fixnum, "^", c_fixnum_xor); | |
mrbc_define_method(vm, mrbc_class_fixnum, "~", c_fixnum_not); | |
mrbc_define_method(vm, mrbc_class_fixnum, "<<", c_fixnum_lshift); | |
mrbc_define_method(vm, mrbc_class_fixnum, ">>", c_fixnum_rshift); | |
mrbc_define_method(vm, mrbc_class_fixnum, "abs", c_fixnum_abs); | |
mrbc_define_method(vm, mrbc_class_fixnum, "to_i", c_ineffect); | |
#if MRBC_USE_FLOAT | |
mrbc_define_method(vm, mrbc_class_fixnum, "to_f", c_fixnum_to_f); | |
#endif | |
mrbc_define_method(vm, mrbc_class_fixnum, "chr", c_fixnum_chr); | |
mrbc_define_method(vm, mrbc_class_fixnum, "inspect", c_fixnum_to_s); | |
mrbc_define_method(vm, mrbc_class_fixnum, "to_s", c_fixnum_to_s); | |
mrbc_define_method(vm, mrbc_class_float, "-@", c_float_negative); | |
#if MRBC_USE_MATH | |
mrbc_define_method(vm, mrbc_class_float, "**", c_float_power); | |
#endif | |
mrbc_define_method(vm, mrbc_class_float, "abs", c_float_abs); | |
mrbc_define_method(vm, mrbc_class_float, "to_i", c_float_to_i); | |
mrbc_define_method(vm, mrbc_class_float, "to_f", c_ineffect); | |
mrbc_define_method(vm, mrbc_class_float, "inspect", c_float_to_s); | |
mrbc_define_method(vm, mrbc_class_float, "to_s", c_float_to_s); | |
mrbc_define_method(vm, mrbc_class_range, "===", c_range_equal3); | |
mrbc_define_method(vm, mrbc_class_range, "first", c_range_first); | |
mrbc_define_method(vm, mrbc_class_range, "last", c_range_last); | |
mrbc_define_method(vm, mrbc_class_range, "exclude_end?", c_range_exclude_end); | |
mrbc_define_method(vm, mrbc_class_range, "inspect", c_range_inspect); | |
mrbc_define_method(vm, mrbc_class_range, "to_s", c_range_inspect); | |
mrbc_define_method(vm, mrbc_class_string, "+", c_string_add); | |
mrbc_define_method(vm, mrbc_class_string, "*", c_string_mul); | |
mrbc_define_method(vm, mrbc_class_string, "size", c_string_size); | |
mrbc_define_method(vm, mrbc_class_string, "length", c_string_size); | |
mrbc_define_method(vm, mrbc_class_string, "to_i", c_string_to_i); | |
mrbc_define_method(vm, mrbc_class_string, "to_s", c_ineffect); | |
mrbc_define_method(vm, mrbc_class_string, "<<", c_string_append); | |
mrbc_define_method(vm, mrbc_class_string, "[]", c_string_slice); | |
mrbc_define_method(vm, mrbc_class_string, "[]=", c_string_insert); | |
mrbc_define_method(vm, mrbc_class_string, "chomp", c_string_chomp); | |
mrbc_define_method(vm, mrbc_class_string, "chomp!", c_string_chomp_self); | |
mrbc_define_method(vm, mrbc_class_string, "dup", c_string_dup); | |
mrbc_define_method(vm, mrbc_class_string, "index", c_string_index); | |
mrbc_define_method(vm, mrbc_class_string, "inspect", c_string_inspect); | |
mrbc_define_method(vm, mrbc_class_string, "ord", c_string_ord); | |
mrbc_define_method(vm, mrbc_class_string, "split", c_string_split); | |
mrbc_define_method(vm, mrbc_class_string, "lstrip", c_string_lstrip); | |
mrbc_define_method(vm, mrbc_class_string, "lstrip!", c_string_lstrip_self); | |
mrbc_define_method(vm, mrbc_class_string, "rstrip", c_string_rstrip); | |
mrbc_define_method(vm, mrbc_class_string, "rstrip!", c_string_rstrip_self); | |
mrbc_define_method(vm, mrbc_class_string, "strip", c_string_strip); | |
mrbc_define_method(vm, mrbc_class_string, "strip!", c_string_strip_self); | |
mrbc_define_method(vm, mrbc_class_string, "to_sym", c_string_to_sym); | |
mrbc_define_method(vm, mrbc_class_string, "intern", c_string_to_sym); | |
mrbc_define_method(vm, mrbc_class_string, "tr", c_string_tr); | |
mrbc_define_method(vm, mrbc_class_string, "tr!", c_string_tr_self); | |
mrbc_define_method(vm, mrbc_class_string, "start_with?", c_string_start_with); | |
mrbc_define_method(vm, mrbc_class_string, "end_with?", c_string_end_with); | |
mrbc_define_method(vm, mrbc_class_string, "include?", c_string_include); | |
#if MRBC_USE_FLOAT | |
mrbc_define_method(vm, mrbc_class_string, "to_f", c_string_to_f); | |
#endif | |
mrbc_define_method(vm, mrbc_class_object, "sprintf", c_object_sprintf); | |
mrbc_define_method(vm, mrbc_class_object, "printf", c_object_printf); | |
mrbc_define_method(vm, mrbc_class_object, "initialize", c_ineffect); | |
mrbc_define_method(vm, mrbc_class_object, "alias_method", c_object_alias_method); | |
mrbc_define_method(vm, mrbc_class_object, "p", c_object_p); | |
mrbc_define_method(vm, mrbc_class_object, "print", c_object_print); | |
mrbc_define_method(vm, mrbc_class_object, "puts", c_object_puts); | |
mrbc_define_method(vm, mrbc_class_object, "!", c_object_not); | |
mrbc_define_method(vm, mrbc_class_object, "!=", c_object_neq); | |
mrbc_define_method(vm, mrbc_class_object, "<=>", c_object_compare); | |
mrbc_define_method(vm, mrbc_class_object, "===", c_object_equal3); | |
mrbc_define_method(vm, mrbc_class_object, "class", c_object_class); | |
mrbc_define_method(vm, mrbc_class_object, "new", c_object_new); | |
mrbc_define_method(vm, mrbc_class_object, "attr_reader", c_object_attr_reader); | |
mrbc_define_method(vm, mrbc_class_object, "attr_accessor", c_object_attr_accessor); | |
mrbc_define_method(vm, mrbc_class_object, "is_a?", c_object_kind_of); | |
mrbc_define_method(vm, mrbc_class_object, "kind_of?", c_object_kind_of); | |
#if MRBC_USE_STRING | |
mrbc_define_method(vm, mrbc_class_object, "inspect", c_object_to_s); | |
mrbc_define_method(vm, mrbc_class_object, "to_s", c_object_to_s); | |
mrbc_define_method(vm, mrbc_class_nil, "!", c_nil_false_not); | |
#if MRBC_USE_STRING | |
mrbc_define_method(vm, mrbc_class_nil, "inspect", c_nil_inspect); | |
mrbc_define_method(vm, mrbc_class_nil, "to_s", c_nil_to_s); | |
#endif | |
mrbc_define_method(vm, mrbc_class_proc, "call", c_proc_call); | |
#if MRBC_USE_STRING | |
mrbc_define_method(vm, mrbc_class_proc, "inspect", c_proc_to_s); | |
mrbc_define_method(vm, mrbc_class_proc, "to_s", c_proc_to_s); | |
#endif | |
// TrueClassには `!` なかったが.. | |
mrbc_define_method(vm, mrbc_class_false, "!", c_nil_false_not); | |
#if MRBC_USE_STRING | |
mrbc_define_method(vm, mrbc_class_false, "inspect", c_false_to_s); | |
mrbc_define_method(vm, mrbc_class_false, "to_s", c_false_to_s); | |
#endif | |
mrbc_define_method(vm, mrbc_class_symbol, "all_symbols", c_all_symbols); // class method? | |
#if MRBC_USE_STRING | |
mrbc_define_method(vm, mrbc_class_symbol, "inspect", c_inspect); | |
mrbc_define_method(vm, mrbc_class_symbol, "to_s", c_to_s); | |
mrbc_define_method(vm, mrbc_class_symbol, "id2name", c_to_s); | |
#endif | |
mrbc_define_method(vm, mrbc_class_symbol, "to_sym", c_ineffect); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment