Construct new preprocess array from a TOML data structure.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(preprocess_config_t), | intent(out), | allocatable | :: | preprocessors(:) |
Instance of the preprocess configuration |
|
type(toml_table), | intent(inout) | :: | table |
Instance of the TOML data structure |
||
type(error_t), | intent(out), | allocatable | :: | error |
Error handling |
subroutine new_preprocessors(preprocessors, table, error) !> Instance of the preprocess configuration type(preprocess_config_t), allocatable, intent(out) :: preprocessors(:) !> 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 :: node type(toml_key), allocatable :: list(:) integer :: iprep, stat call table%get_keys(list) ! An empty table is not allowed if (size(list) == 0) then call syntax_error(error, "No preprocessors defined") end if allocate(preprocessors(size(list))) do iprep = 1, size(list) call get_value(table, list(iprep)%key, node, stat=stat) if (stat /= toml_stat%success) then call syntax_error(error, "Preprocessor "//list(iprep)%key//" must be a table entry") exit end if call new_preprocess_config(preprocessors(iprep), node, error) if (allocated(error)) exit end do end subroutine new_preprocessors