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.
-
-
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.
-
-
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.
Note: All new files should follow the Eingabe_ and Ausgabe_ naming conventions to be compliant with how the FMU is compiled.
Edited by Leon Thelen