Check that a module name fits the current naming rules: 1) It must be a valid FORTRAN name (<=63 chars, begin with letter, “_” is only allowed non-alphanumeric) 2) It must begin with the package name 3) If longer, package name must be followed by default separator plus at least one char
Basic check: check the name is Fortran-compliant
FPM package enforcing: check that the module name begins with the package name
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(string_t), | intent(in) | :: | module_name | |||
type(string_t), | intent(in) | :: | package_name | |||
type(string_t), | intent(in) | :: | custom_prefix | |||
logical, | intent(in) | :: | enforce_module_names |
logical function is_valid_module_name(module_name,package_name,custom_prefix,enforce_module_names) result(valid) type(string_t), intent(in) :: module_name type(string_t), intent(in) :: package_name type(string_t), intent(in) :: custom_prefix logical , intent(in) :: enforce_module_names !> Basic check: check the name is Fortran-compliant valid = is_fortran_name(module_name%s); if (.not.valid) return !> FPM package enforcing: check that the module name begins with the package name if (enforce_module_names) then ! Default prefixing is always valid valid = has_valid_standard_prefix(module_name,package_name) ! If a custom prefix was validated, it provides additional naming options ! Because they never overlap with the default prefix, the former is always an option if (len_trim(custom_prefix)>0 .and. .not.valid) & valid = has_valid_custom_prefix(module_name,custom_prefix) end if end function is_valid_module_name