+ completed->cur_state = child_state;
+ cur_group = completed->cur_group;
+ completed->cur_group = NULL;
+
+ /* complete */
+ ret = node->type->complete(node, completed, strvec);
+
+ /* restore parent parse state */
+ if (cur_state != NULL) {
+ ec_parsed_del_child(cur_state, child_state);
+ assert(!ec_parsed_has_child(child_state));
+ }
+ ec_parsed_free(child_state);
+ completed->cur_state = cur_state;
+ completed->cur_group = cur_group;