Lines Matching full:iterator

116   /* Iterator functions.  */
118 struct dict_iterator *iterator);
119 struct symbol *(*iterator_next) (struct dict_iterator *iterator);
123 struct dict_iterator *iterator);
125 struct dict_iterator *iterator);
215 /* The dictionary that the iterator is associated to. */
237 struct dict_iterator *iterator);
239 static struct symbol *iterator_next_hashed (struct dict_iterator *iterator);
243 struct dict_iterator *iterator);
246 struct dict_iterator *iterator);
265 struct dict_iterator *iterator);
267 static struct symbol *iterator_next_linear (struct dict_iterator *iterator);
271 struct dict_iterator *iterator);
274 struct dict_iterator *iterator);
496 /* Initialize ITERATOR to point at the first symbol in DICT, and
501 struct dict_iterator *iterator) in dict_iterator_first() argument
503 return (DICT_VECTOR (dict))->iterator_first (dict, iterator); in dict_iterator_first()
506 /* Advance ITERATOR, and return the next symbol, or NULL if there are
510 dict_iterator_next (struct dict_iterator *iterator) in dict_iterator_next() argument
512 return (DICT_VECTOR (DICT_ITERATOR_DICT (iterator))) in dict_iterator_next()
513 ->iterator_next (iterator); in dict_iterator_next()
519 struct dict_iterator *iterator) in dict_iter_name_first() argument
521 return (DICT_VECTOR (dict))->iter_name_first (dict, name, iterator); in dict_iter_name_first()
525 dict_iter_name_next (const char *name, struct dict_iterator *iterator) in dict_iter_name_next() argument
527 return (DICT_VECTOR (DICT_ITERATOR_DICT (iterator))) in dict_iter_name_next()
528 ->iter_name_next (name, iterator); in dict_iter_name_next()
573 struct dict_iterator *iterator) in iterator_first_hashed() argument
575 DICT_ITERATOR_DICT (iterator) = dict; in iterator_first_hashed()
576 DICT_ITERATOR_INDEX (iterator) = -1; in iterator_first_hashed()
577 return iterator_hashed_advance (iterator); in iterator_first_hashed()
581 iterator_next_hashed (struct dict_iterator *iterator) in iterator_next_hashed() argument
583 const struct dictionary *dict = DICT_ITERATOR_DICT (iterator); in iterator_next_hashed()
586 next = DICT_ITERATOR_CURRENT (iterator)->hash_next; in iterator_next_hashed()
589 return iterator_hashed_advance (iterator); in iterator_next_hashed()
592 DICT_ITERATOR_CURRENT (iterator) = next; in iterator_next_hashed()
598 iterator_hashed_advance (struct dict_iterator *iterator) in iterator_hashed_advance() argument
600 const struct dictionary *dict = DICT_ITERATOR_DICT (iterator); in iterator_hashed_advance()
604 for (i = DICT_ITERATOR_INDEX (iterator) + 1; i < nbuckets; ++i) in iterator_hashed_advance()
610 DICT_ITERATOR_INDEX (iterator) = i; in iterator_hashed_advance()
611 DICT_ITERATOR_CURRENT (iterator) = sym; in iterator_hashed_advance()
622 struct dict_iterator *iterator) in iter_name_first_hashed() argument
628 DICT_ITERATOR_DICT (iterator) = dict; in iter_name_first_hashed()
646 DICT_ITERATOR_CURRENT (iterator) = sym; in iter_name_first_hashed()
651 iter_name_next_hashed (const char *name, struct dict_iterator *iterator) in iter_name_next_hashed() argument
655 for (next = DICT_ITERATOR_CURRENT (iterator)->hash_next; in iter_name_next_hashed()
663 DICT_ITERATOR_CURRENT (iterator) = next; in iter_name_next_hashed()
753 struct dict_iterator *iterator) in iterator_first_linear() argument
755 DICT_ITERATOR_DICT (iterator) = dict; in iterator_first_linear()
756 DICT_ITERATOR_INDEX (iterator) = 0; in iterator_first_linear()
761 iterator_next_linear (struct dict_iterator *iterator) in iterator_next_linear() argument
763 const struct dictionary *dict = DICT_ITERATOR_DICT (iterator); in iterator_next_linear()
765 if (++DICT_ITERATOR_INDEX (iterator) >= DICT_LINEAR_NSYMS (dict)) in iterator_next_linear()
768 return DICT_LINEAR_SYM (dict, DICT_ITERATOR_INDEX (iterator)); in iterator_next_linear()
774 struct dict_iterator *iterator) in iter_name_first_linear() argument
776 DICT_ITERATOR_DICT (iterator) = dict; in iter_name_first_linear()
777 DICT_ITERATOR_INDEX (iterator) = -1; in iter_name_first_linear()
779 return iter_name_next_linear (name, iterator); in iter_name_first_linear()
783 iter_name_next_linear (const char *name, struct dict_iterator *iterator) in iter_name_next_linear() argument
785 const struct dictionary *dict = DICT_ITERATOR_DICT (iterator); in iter_name_next_linear()
789 for (i = DICT_ITERATOR_INDEX (iterator) + 1; i < nsyms; ++i) in iter_name_next_linear()
799 DICT_ITERATOR_INDEX (iterator) = i; in iter_name_next_linear()