#include static enum bshell_status collect_children( struct bshell_ast_node *node, struct bshell_ast_iterator *it) { struct bshell_block_ast_node *block = (struct bshell_block_ast_node *) node; fx_queue_entry *cur = fx_queue_first(&block->n_statements); while (cur) { struct bshell_ast_node *child = fx_unbox( struct bshell_ast_node, cur, n_entry); bshell_ast_iterator_enqueue(it, child); cur = fx_queue_next(cur); } return BSHELL_SUCCESS; } struct bshell_ast_node_definition block_bshell_ast_node = { .def_id = BSHELL_AST_BLOCK, .def_node_size = sizeof(struct bshell_block_ast_node), .def_collect_children = collect_children, };