Check that a custom module prefix fits the current naming rules: 1) Only alphanumeric characters (no spaces, dashes, underscores or other characters) 2) Does not begin with a number (Fortran-compatible syntax)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(string_t), | intent(in) | :: | module_prefix |
logical function is_valid_module_prefix(module_prefix) result(valid) type(string_t), intent(in) :: module_prefix character(len=*),parameter :: num='0123456789' character(len=*),parameter :: lower='abcdefghijklmnopqrstuvwxyz' character(len=*),parameter :: upper='ABCDEFGHIJKLMNOPQRSTUVWXYZ' character(len=*),parameter :: alpha =upper//lower character(len=*),parameter :: allowed=alpha//num character(len=:),allocatable :: name name = trim(module_prefix%s) if (len(name)>0 .and. len(name)<=63) then valid = verify(name(1:1), alpha) == 0 .and. & verify(name,allowed) == 0 else valid = .false. endif end function is_valid_module_prefix