bool _;
while (i < n_words && !finish && shu_extract_argument(words[i], &_) == NULL) {{
    if ({argument_name} == NULL) {{
        {argument_name} = malloc(_SH_INIT_BUFFER * sizeof({argument_item_type}));
    }}
    else if ({argument_name}_index == {argument_name}_size) {{
        {argument_name}_size *= 2;
        {argument_name} = realloc({argument_name}, {argument_name}_size * sizeof({argument_item_type}));
    }}
    {assignment}
    {assignment_required}
    i++;
}}
if (i < n_words) {{
    i--;
}}
{last_check} 