I have committed the code to parse the types defined in the grammar.

The code now needs C++14 support to compile. That will not be the case for the code generated by the compiler.

As discussed earlier, the types are parsed into an abstract syntax tree in which each parsed type is represented by a single object, which may itself contain objects as well. This results in a small forest of tiny trees: one for each type in the schema file. We still need to parse constraints, build a register of named types/symbols and embed debug information in the tree for later use, but a large part of the grunt work for the types is now done.