parse_group_body Subroutine

private subroutine parse_group_body(g, lines, n_lines, li, col, path, errors, n_err)

Tokenize and apply key = value... pairs until ‘/’.

Arguments

Type IntentOptional Attributes Name
type(nml_group_t), intent(inout) :: g
character(len=*), intent(in) :: lines(:)
integer, intent(in) :: n_lines
integer, intent(inout) :: li
integer, intent(inout) :: col
character(len=*), intent(in) :: path
character(len=:), intent(inout), allocatable :: errors(:)
integer, intent(inout) :: n_err

Calls

proc~~parse_group_body~~CallsGraph proc~parse_group_body parse_group_body proc~apply_one_pair apply_one_pair proc~parse_group_body->proc~apply_one_pair proc~collect_tokens collect_tokens proc~parse_group_body->proc~collect_tokens names names proc~apply_one_pair->names parse_tokens parse_tokens proc~apply_one_pair->parse_tokens proc~add_err add_err proc~apply_one_pair->proc~add_err proc~append_val append_val proc~apply_one_pair->proc~append_val proc~group_find_key nml_group_t%group_find_key proc~apply_one_pair->proc~group_find_key proc~group_key_list group_key_list proc~apply_one_pair->proc~group_key_list proc~make_prefix make_prefix proc~apply_one_pair->proc~make_prefix proc~suggest suggest proc~apply_one_pair->proc~suggest proc~collect_tokens->proc~add_err proc~check_unsupported check_unsupported proc~collect_tokens->proc~check_unsupported proc~collect_tokens->proc~make_prefix proc~push_tok push_tok proc~collect_tokens->proc~push_tok proc~strip_comment strip_comment proc~collect_tokens->proc~strip_comment proc~check_unsupported->proc~add_err proc~check_unsupported->proc~make_prefix proc~is_repeat_count is_repeat_count proc~check_unsupported->proc~is_repeat_count proc~lower lower proc~group_find_key->proc~lower proc~fmt_int fmt_int proc~make_prefix->proc~fmt_int proc~levenshtein levenshtein proc~suggest->proc~levenshtein proc~suggest->proc~lower

Called by

proc~~parse_group_body~~CalledByGraph proc~parse_group_body parse_group_body proc~dispatch_group dispatch_group proc~dispatch_group->proc~parse_group_body proc~parse_from_lines parse_from_lines proc~parse_from_lines->proc~dispatch_group proc~parse_file parse_file proc~parse_file->proc~parse_from_lines proc~schema_parse_lines nml_schema_t%schema_parse_lines proc~schema_parse_lines->proc~parse_from_lines proc~read_config_from_string_impl read_config_from_string_impl proc~read_config_from_string_impl->proc~schema_parse_lines proc~schema_parse nml_schema_t%schema_parse proc~schema_parse->proc~parse_file proc~read_config_from_string read_config_from_string proc~read_config_from_string->proc~read_config_from_string_impl proc~read_config_impl read_config_impl proc~read_config_impl->proc~schema_parse

Variables

Type Visibility Attributes Name Initial
integer, private :: n_tok
integer, private :: ti
integer, private, allocatable :: tok_line(:)
character(len=256), private, allocatable :: tokens(:)

Source Code

   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