Grammar optimisations