Handle unexpected tokens properly

Also, add null and boolean values to json grammar