Good work. I also looked into it and turned that patch into something clearer for comparison. See attachment. Should be mostly the same thing. I ignored some spacing to get a clearer diff.
Just one hint: Rather than invoking new Parser(null) I'd prefer a second constructor without arguments. This is a matter of taste, though.