subroutine parse_group_body(g, lines, n_lines, li, col, path, errors, n_err)
!! Tokenize and apply `key = value...` pairs until '/'.
type(nml_group_t), intent(inout) :: g
character(len=*), intent(in) :: lines(:)
integer, intent(in) :: n_lines
integer, intent(inout) :: li, col
character(len=*), intent(in) :: path
character(len=:), allocatable, intent(inout) :: errors(:)
integer, intent(inout) :: n_err
character(len=256), allocatable :: tokens(:)
integer, allocatable :: tok_line(:)
integer :: n_tok, ti
call collect_tokens(lines, n_lines, li, col, path, tokens, tok_line, n_tok, errors, n_err)
ti = 1
do while (ti <= n_tok)
call apply_one_pair(g, tokens, tok_line, n_tok, ti, path, errors, n_err)
end do
end subroutine parse_group_body