Implement new input format
Reko-Direkt uses complicated input files which are very hard to parse by other programs, for example python scripts (example input files can be found in the repository at test/rd/testcases). Therefor, Reko-Direkt should support a standardized input format. The Eingabe_I and Eingabe_II format are affected by this change.
The new format should be the TOML file format. For this, the Fortran library toml-f (see here) should be used.
The following features should be implemented:
-
An input file requires a certain format (which is specified by the TOML-standard) and strictly defined structure. The structure needs to be defined, meaning there needs to be some specification which keys the input file must contain. Important: The new TOML formatted input file must contain all information previously provided by
Eingabe_IandEingabe_II. -
All testcases must be converted to this new input format (also used for testing while implementing). Testcases are located at
test/rd/testcases.-
Convert just a single testcase (e.g.
HR02). This testcase can then be used for testing during implementation. - Convert all other testcases.
-
Convert just a single testcase (e.g.
-
The new file format and structure need to be implemented.
-
Compile Reko-Direkt with
toml-f(GNU Make and CMake), so that all of its functionality can be used by Reko-Direkt. -
To not have all old input files be invalid after the update, the old input format should still be usable. So, if an argument is given on command line, Reko-Direkt should treat that file as
toml-formatted, otherwise use the old behavior. -
The structure previously defined must be implemented using the
toml-flibrary. All functionality previously implemented byEingabe.f90andEingabe_II.f90must also be present in the new implementation.
-
Compile Reko-Direkt with
- An automated test in the pipeline must check whether the new functionality works, e.g. by comparing the results of both input formats.
-
Optional: The previous input required
Eingabe_III.txtto exist in the current directory. It would be nice if, for the new file format, the location of that file could be provided manually. -
Update
README.mdto describe both the old and new format -
Create a template for the new input format, describing the basic format (e.g. at
dev/Eingabe.toml). Do not forget to mention this in the README.
Note: All new files should follow the Eingabe_ and Ausgabe_ naming conventions to be compliant with how the FMU is compiled.
Edited by n.dautzenberg