Rework parsers to allow for localised failure