Factor building up of data structure out of parser

You can implement your own Visitor to allow different behaviours, e.g. to allow
duplicate keys or to generate a different data structure (e.g. flat instead of
recursive etc).