Separate grammar normalization from parser generation