Namespace and parser improvements for multisystems
Description
Several changes and additions to the namespace and parser to better handle multisystems, in particular when we have nested systems of systems. The main changes are:
- modified namespace constructor to allow creating on-the-fly of a namespace with multiply nested parents from a string of dot separated names.
- new method to check if a namespace contains another namespace
- overload the '==' operator to compare namespaces
- the parser will now check for all possible combinations of namespaces when trying to find a variable in the input file.
This means that in the input file, the following are now equivalent:
SystemA.SystemB.SystemC.varname = ...
SystemB.SystemC.varname = ...
SystemC.varname = ...
If more than one of these are defined, the parser will use the most complete path. If none of the above are defined, the parser will next look for (and use it if found):
SystemA.SystemB.varname = ...
and then
SystemA.varname = ...
News snippet
Several changes and additions to the namespace and parser to better handle multisystems
Checklist
-
I have checked that my code follows the Octopus coding standards -
I have added tests for all the new features added in this request.