Layout tree loader
Description
This MR adds a loader class that supports the YAML-based format discussed in #72 (closed). The format is briefly described in the documentation. Significant effort has been put towards providing helpful error messages, and as a consequence about 2/3 of the code is doing error reporting. This can be further improved once the addressing system is ready, and in the future with yaml-cpp >= 0.5.2 (CC8).
Based on !32 (merged) (even if not strictly required).
The limitation that prevents YAML anchors from spanning multiple files can be lifted later by inserting a thin layer between the yaml-cpp SAX interface and its document builder.
Related Issue
Closes #72 (closed).
How Has This Been Tested?
Bundled unit tests.
Screenshots
node of type b: ERROR: "number" must be a positive integer
Expected a number >= 0, got -1
Types of changes
-
Bug fix (non-breaking change which fixes an issue) -
New feature (non-breaking change which adds functionality) -
Breaking change (fix or feature that would cause existing functionality to change)
Checklist:
-
My code follows the code style of this project. -
My change requires a change to the documentation. -
I have updated the documentation accordingly. -
I have read the CONTRIBUTING document. -
I have added tests to cover my changes. -
All new and existing tests passed.