Some shuffling around
Did some global cleanup
Using BNFC to define the JSON grammar