120 scm_write (i_smob->
object, port);
121 scm_puts (
" ", port);
123 scm_puts (
" ", port);
124 scm_write (i_smob->
next_x, port);
125 scm_puts (
">", port);
127 scm_remember_upto_here_1 (self);
278 return SCM_UNSPECIFIED;
305Create a <gdb:iterator> object.\n\
307 Arguments: object progress next!\n\
308 object: The object to iterate over.\n\
309 progress: An object to use to track progress of the iteration.\n\
310 next!: A procedure of one argument, the iterator.\n\
311 Returns the next element in the iteration or an implementation-chosen\n\
312 value to signify iteration is complete.\n\
313 By convention end-of-iteration should be marked with (end-of-iteration)\n\
314 from module (gdb iterator)." },
318Return #t if the object is a <gdb:iterator> object." },
322Return the object being iterated over." },
326Return the progress object of the iterator." },
328 {
"set-iterator-progress!", 2, 0, 0,
331Set the progress object of the iterator." },
335Invoke the next! procedure of the iterator and return its result." },
339Return the end-of-iteration marker." },
343Return #t if the object is the end-of-iteration marker." },
static struct parser_state * pstate
int gdbscm_is_procedure(SCM proc)
void gdbscm_init_gsmob(gdb_smob *base)
SCM gdbscm_safe_call_1(SCM proc, SCM arg0, excp_matcher_func *ok_excps)
int excp_matcher_func(SCM key)
void gdbscm_printf(SCM port, const char *format,...) ATTRIBUTE_PRINTF(2
static SCM scm_new_smob(scm_t_bits tc, scm_t_bits data)
void gdbscm_define_functions(const scheme_function *, int is_public)
scm_t_bits gdbscm_make_smob_type(const char *name, size_t size)
static scm_t_subr as_a_scm_t_subr(SCM(*func)(void))
static SCM gdbscm_iterator_progress(SCM self)
void itscm_set_iterator_smob_progress_x(iterator_smob *i_smob, SCM progress)
SCM itscm_iterator_smob_object(iterator_smob *i_smob)
static scm_t_bits iterator_smob_tag
SCM itscm_iterator_smob_progress(iterator_smob *i_smob)
static SCM gdbscm_iterator_next_x(SCM self)
static const scheme_function iterator_functions[]
void gdbscm_initialize_iterators(void)
static SCM end_of_iteration
SCM gdbscm_make_iterator(SCM object, SCM progress, SCM next)
static int itscm_print_iterator_smob(SCM self, SCM port, scm_print_state *pstate)
SCM itscm_safe_call_next_x(SCM iter, excp_matcher_func *ok_excps)
static SCM gdbscm_iterator_p(SCM scm)
static SCM gdbscm_set_iterator_progress_x(SCM self, SCM value)
static SCM gdbscm_iterator_object(SCM self)
int itscm_is_iterator(SCM scm)
const char * itscm_iterator_smob_name(void)
static SCM itscm_make_iterator_smob(SCM object, SCM progress, SCM next)
int itscm_is_end_of_iteration(SCM obj)
static const char iterator_smob_name[]
SCM itscm_get_iterator_arg_unsafe(SCM self, int arg_pos, const char *func_name)
static SCM gdbscm_end_of_iteration_p(SCM obj)
SCM gdbscm_end_of_iteration(void)