[parametertree] Separate parser and parametertree
Currently the parametertree contains parts of the parser. The parser only detects sections, keys and values, but the interpretation of the value strings is part of the parametertree.
This bears a major problem. One can not (in general) write a parser for other file formats.
My suggestion would be:
-
implement a general value data-type, which can represent a range of different C++ data types, in spirit something like std::variant<double,int,bool,std::string,std::vector<double>>
-
move the value-parser to the corresponding parts of ParameterTreeParser
-
properly define the syntax for the different data types in the ini-format and the argv-format
This change should only modify the internal representation of the ParameterTree
and potentially allow some new features. The actual implementation will depend on some other questions/issues, as the format should not be too restrictive and yet also not too complicated.