1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
NAME
wnloop -- package for writing iterators
SYNOPSIS
extern bool wn_loopinit_just_called;
wn_loopinit();
DESCRIPTION
This package provides a procedure for writing generalized iterators.
These iterators work in for loops. Use "wn_loopinit()" in
the first part of the for loop; use your iterator in the second part;
the third part is blank.
Write an iterator using this template:
bool my_loop(my_object,pmy_dummy)
my_type my_object;
my_dummy_type *pmy_dummy;
{
extern bool wn_loopinit_just_called;
if(wn_loopinit_just_called)
{
*pmy_dummy = first_dummy(my_object); /* set up first dummy */
wn_loopinit_just_called = FALSE;
}
else
{
(*pmy_dummy) = next_dummy(my_object,*pmy_dummy);
}
return(*pmy_dummy != NULL);
}
Use your iterator as follows:
{
my_type my_dummy;
for(wn_loopinit();my_loop(my_object,&my_dummy);)
{
...
}
}
Also, consider using already existing iterators to write new
iterators.
EXAMPLES
BUGS
SEE ALSO
wnset, wnsll
AUTHOR
Will Naylor
|