Personally, I went with a stack & statemachine based parser.
And if you look at the bug reports about the existing parser, you will soon realize that it has a tendency to break one thing when they fix another. It's a bunch of duct-taped together hacks. About hacks, look at the statics, most, if not all latest vulnerabilities are due to flaws in the parser.