Construct a new example configuration from a TOML data structure
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(example_config_t), | intent(out) | :: | self |
Instance of the example configuration |
||
type(toml_table), | intent(inout) | :: | table |
Instance of the TOML data structure |
||
type(error_t), | intent(out), | allocatable | :: | error |
Error handling |
subroutine new_example(self, table, error)
!> Instance of the example configuration
type(example_config_t), intent(out) :: self
!> Instance of the TOML data structure
type(toml_table), intent(inout) :: table
!> Error handling
type(error_t), allocatable, intent(out) :: error
type(toml_table), pointer :: child
call check(table, error)
if (allocated(error)) return
call get_value(table, "name", self%name)
if (.not.allocated(self%name)) then
call syntax_error(error, "Could not retrieve example name")
return
end if
if (bad_name_error(error,'example',self%name))then
return
endif
call get_value(table, "source-dir", self%source_dir, "example")
call get_value(table, "main", self%main, "main.f90")
call get_value(table, "dependencies", child, requested=.false.)
if (associated(child)) then
call new_dependencies(self%dependency, child, error=error)
if (allocated(error)) return
end if
call get_list(table, "link", self%link, error)
if (allocated(error)) return
end subroutine new_example