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.