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