Parser changes to optimise the case where parsing suceeds on the first pass