merge boolean/null parsers since the pattern is the same: keyword followed by value injection; change object return value to a dictionary, checking that the keys are unique