Here's my dream config language:

* start with JSON

* add comments (obviously)

* allow trailing commas (obviously)

* allow left-side and right-side to be independently and explicitly typed

* extensible type support (JSON's lack of u64 is absurd)

For example the following are all equivalent:

* "foo" : f32 = 13.37

* "bar" : f32 = "13.37"

* "baz" : f32 = 0x4155eb85 : hex

And extensibility to allow:

* "ham" : u64 = 123456789123

I would also be inclined to allow explicit config file hierarchy by allowing:

* configs can specify their base

* configs can specify their child

* must be acylic

I've thought about implementing this myself. But I've never written a real lexer or parser. It's on my side-project TODO list.

You might like RON[1]. It's far from perfect (and far from complete), but seems nice so far.

[1] https://github.com/ron-rs/ron