types.c
// Go to the first scalar in a depth first walk.
Go to the first scalar in a depth first walk.
Go to the first scalar in a depth first walk .
TypeIterator *type_iterator_dig(TypeIterator *it) {
    if (type_iterator_done(it))
        panic("Attempt to call dig on a done type iterator");
    else if (is_scalar_type(it->type))
        return it;
    else if (it->type->type == TYPE_ARRAY || it->type->type == TYPE_STRUCT_OR_UNION)
        return type_iterator_dig(type_iterator_descend(it));
    else
        panic("Unhandled type in type_iterator_dig");
}
TypeIterator * type_iterator_dig ( TypeIterator * it ) { if ( type_iterator_done ( it ) ) panic ( " " ) ; else if ( is_scalar_type ( it -> type ) ) return it ; else if ( it -> type -> type == TYPE_ARRAY || it -> type -> type == TYPE_STRUCT_OR_UNION ) return type_iterator_dig ( type_iterator_descend ( it ) ) ; else panic ( " " ) ; }
Go to the first scalar in a depth first walk.
Go to the first scalar in a depth first walk .