#include static enum bshell_status collect_children( struct bshell_ast_node *node, struct bshell_ast_iterator *it) { struct bshell_cmdcall_ast_node *cmdcall = (struct bshell_cmdcall_ast_node *) node; fx_queue_entry *cur = fx_queue_first(&cmdcall->n_args); 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); } cur = fx_queue_first(&cmdcall->n_redirect); 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 cmdcall_bshell_ast_node = { .def_id = BSHELL_AST_CMDCALL, .def_node_size = sizeof(struct bshell_cmdcall_ast_node), .def_collect_children = collect_children, };