27 #define id_each idEach
30 #define id_lshift idLTLT
35 if (argc == 0)
return Qnil;
36 if (argc == 1)
return argv[0];
40 #define ENUM_WANT_SVALUE() do { \
41 i = rb_enum_values_pack(argc, argv); \
44 #define enum_yield rb_yield_values2
168 rb_warn(
"given block not used");
222 return memo->u1.value;
224 if (!
NIL_P(if_none)) {
291 rb_warn(
"given block not used");
298 return memo->u1.value;
515 VALUE key_value_pair;
519 if (
NIL_P(key_value_pair)) {
651 op =
id ?
ID2SYM(
id) : init;
661 if (
id) op = ID2SYM(
id);
667 return memo->u1.value;
805 return memo->u1.value;
833 #define SORT_BY_BUFSIZE 16
1006 #define ENUMFUNC(name) rb_block_given_p() ? name##_iter_i : name##_i
1008 #define DEFINE_ENUMFUNCS(name) \
1009 static VALUE enum_##name##_func(VALUE result, NODE *memo); \
1012 name##_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, memo)) \
1014 return enum_##name##_func(rb_enum_values_pack(argc, argv), RNODE(memo)); \
1018 name##_iter_i(RB_BLOCK_CALL_FUNC_ARGLIST(i, memo)) \
1020 return enum_##name##_func(enum_yield(argc, argv), RNODE(memo)); \
1024 enum_##name##_func(VALUE result, NODE *memo)
1057 return memo->u1.value;
1063 memo->u1.value =
Qtrue;
1091 return memo->u1.value;
1097 if (memo->u1.value ==
Qundef) {
1098 memo->u1.value =
Qtrue;
1100 else if (memo->u1.value ==
Qtrue) {
1133 result = memo->u1.value;
1167 return memo->u1.value;
1509 return memo->u2.value;
1555 return memo->u2.value;
1695 return memo->u2.value;
1701 long n =
RNODE(memo)->u3.cnt++;
1880 ary = memo->u1.value;
1991 long n = memo->
u3.
cnt++;
2000 if (RARRAY_LEN(e) <= n) {
2007 if (
NIL_P(result)) {
2055 if (
NIL_P(result)) {
2098 for (i=0; i<
argc; i++) {
2108 for (i=0; i<
argc; i++) {
2203 if (memo->
u3.
cnt == 0) {
2310 if (mul <= 0)
return INT2FIX(0);
2350 if (n <= 0)
return Qnil;
2356 if (len == 0)
return Qnil;
2357 while (n < 0 || 0 < --n) {
2358 for (i=0; i<len; i++) {
2395 else if (
NIL_P(v) || v == separator) {
2544 VALUE initial_state;
2582 if (
RTEST(header_p)) {
2764 VALUE initial_state;
2796 #define rb_intern(str) rb_intern_const(str)