Implementation of the meta data for preprocessing.
A preprocess table can currently have the following fields
[preprocess]
[preprocess.cpp]
suffixes = ["F90", "f90"]
directories = ["src/feature1", "src/models"]
macros = []
Configuration meta data for a preprocessor
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(string_t), | public, | allocatable | :: | directories(:) | Directories to search for files to be preprocessed | ||
| type(string_t), | public, | allocatable | :: | macros(:) | Macros to be defined for the preprocessor | ||
| character(len=:), | public, | allocatable | :: | name | Name of the preprocessor | ||
| type(string_t), | public, | allocatable | :: | suffixes(:) | Suffixes of the files to be preprocessed | 
| procedure, public :: add_config | |
| procedure, public :: destroy | Operations | 
| generic, public :: dump => dump_to_toml, dump_to_file, dump_to_unit | |
| procedure, public :: dump_to_toml | |
| procedure, public :: info | Print information on this instance | 
| procedure, public :: is_cpp | Properties | 
| procedure, public :: is_fypp | |
| generic, public :: load => load_from_toml, load_from_file, load_from_unit | |
| procedure, public :: load_from_toml | |
| generic, public :: new => new_cpp_config_with_macros, new_preprocess_config | |
| generic, public :: operator(==) => serializable_is_same | |
| procedure, public :: serializable_is_same => preprocess_is_same | Serialization interface | 
| procedure, public, non_overridable :: test_serialization | Test load/write roundtrip | 
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 |