Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
iterator.h
Go to the documentation of this file.
1#ifndef RBIMPL_ITERATOR_H /*-*-C++-*-vi:se ft=cpp:*/
2#define RBIMPL_ITERATOR_H
25#include "ruby/internal/value.h"
26
28
29#define RB_BLOCK_CALL_FUNC_STRICT 1
30#define RUBY_BLOCK_CALL_FUNC_TAKES_BLOCKARG 1
31#define RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg) \
32 VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg
33typedef VALUE rb_block_call_func(RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg));
35
38VALUE rb_yield_values(int n, ...);
39VALUE rb_yield_values2(int n, const VALUE *argv);
40VALUE rb_yield_values_kw(int n, const VALUE *argv, int kw_splat);
43VALUE rb_yield_block(RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg)); /* rb_block_call_func */
44int rb_keyword_given_p(void);
45int rb_block_given_p(void);
46void rb_need_block(void);
56
58void rb_throw(const char*,VALUE);
59
62
64
65#endif /* RBIMPL_ITERATOR_H */
Tewaking visibility of C variables/functions.
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
Definition: dllexport.h:86
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
Definition: dllexport.h:77
void rb_need_block(void)
Declares that the current method needs a block.
Definition: eval.c:961
int rb_block_given_p(void)
Determines if the current method is given a block.
Definition: eval.c:935
VALUE rb_rescue2(VALUE(*)(VALUE), VALUE, VALUE(*)(VALUE, VALUE), VALUE,...)
An equivalent of rescue clause.
Definition: eval.c:991
VALUE rb_rescue(VALUE(*)(VALUE), VALUE, VALUE(*)(VALUE, VALUE), VALUE)
An equivalent of rescue clause.
Definition: eval.c:1080
VALUE rb_ensure(VALUE(*)(VALUE), VALUE, VALUE(*)(VALUE), VALUE)
An equivalent to ensure clause.
Definition: eval.c:1148
#define RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg)
Definition: iterator.h:31
VALUE rb_vrescue2(VALUE(*)(VALUE), VALUE, VALUE(*)(VALUE, VALUE), VALUE, va_list)
An equivalent of rescue clause.
Definition: eval.c:1006
VALUE rb_block_call_kw(VALUE, ID, int, const VALUE *, rb_block_call_func_t, VALUE, int)
Definition: vm_eval.c:1584
VALUE rb_catch(const char *, rb_block_call_func_t, VALUE)
Definition: vm_eval.c:2385
VALUE rb_iterate(VALUE(*)(VALUE), VALUE, rb_block_call_func_t, VALUE)
Definition: vm_eval.c:1544
VALUE rb_yield_values(int n,...)
Definition: vm_eval.c:1353
void rb_throw(const char *, VALUE)
Definition: vm_eval.c:2315
VALUE rb_yield_values2(int n, const VALUE *argv)
Definition: vm_eval.c:1375
VALUE rb_yield_values_kw(int n, const VALUE *argv, int kw_splat)
Definition: vm_eval.c:1381
rb_block_call_func * rb_block_call_func_t
Definition: iterator.h:34
VALUE rb_yield_block(RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg))
void rb_throw_obj(VALUE, VALUE)
Definition: vm_eval.c:2290
VALUE rb_block_call_func(RB_BLOCK_CALL_FUNC_ARGLIST(yielded_arg, callback_arg))
Definition: iterator.h:33
VALUE rb_each(VALUE)
Definition: vm_eval.c:1639
VALUE rb_yield_splat(VALUE)
Definition: vm_eval.c:1387
VALUE rb_yield_splat_kw(VALUE, int)
Definition: vm_eval.c:1400
VALUE rb_block_call(VALUE, ID, int, const VALUE *, rb_block_call_func_t, VALUE)
Definition: vm_eval.c:1570
VALUE rb_yield(VALUE)
Definition: vm_eval.c:1341
int rb_keyword_given_p(void)
Definition: eval.c:948
VALUE rb_catch_obj(VALUE, rb_block_call_func_t, VALUE)
Definition: vm_eval.c:2427
Defines RBIMPL_ATTR_NORETURN.
#define RBIMPL_ATTR_NORETURN()
Wraps (or simulates) [[noreturn]]
Definition: noreturn.h:38
char ** argv
Definition: ruby.c:241
#define const
Definition: strftime.c:108
Defines VALUE and ID.
unsigned long VALUE
Definition: value.h:38
unsigned long ID
Definition: value.h:39