string_to_int Function

private function string_to_int(json, str) result(ival)

Convert a string into an integer.

Type Bound

json_core

Arguments

Type IntentOptional Attributes Name
class(json_core), intent(inout) :: json
character(kind=CK, len=*), intent(in) :: str

a string

Return Value integer(kind=IK)

str converted to an integer


Calls

proc~~string_to_int~~CallsGraph proc~string_to_int json_core%string_to_int none~throw_exception json_core%throw_exception proc~string_to_int->none~throw_exception proc~string_to_integer string_to_integer proc~string_to_int->proc~string_to_integer proc~json_throw_exception json_core%json_throw_exception none~throw_exception->proc~json_throw_exception

Called by

proc~~string_to_int~~CalledByGraph proc~string_to_int json_core%string_to_int proc~parse_number json_core%parse_number proc~parse_number->proc~string_to_int proc~parse_value_nonrecursive parse_value_nonrecursive proc~parse_value_nonrecursive->proc~parse_number proc~parse_value_recursive parse_value_recursive proc~parse_value_recursive->proc~parse_number

Source Code

    function string_to_int(json,str) result(ival)

    implicit none

    class(json_core),intent(inout)      :: json
    character(kind=CK,len=*),intent(in) :: str   !! a string
    integer(IK)                         :: ival  !! `str` converted to an integer

    logical(LK) :: status_ok !! error flag for [[string_to_integer]]

    ! call the core routine:
    call string_to_integer(str,ival,status_ok)

    if (.not. status_ok) then
        ival = 0
        call json%throw_exception('Error in string_to_int: '//&
                                    'string cannot be converted to an integer: '//&
                                    trim(str))
    end if

    end function string_to_int