}
@TaskAction
public void generate() {
// Determine the grammar files and the proper ordering amongst them
XRef xref = new MetadataExtracter().extractMetadata(getSource());
List<GenerationPlan> generationPlans = new GenerationPlanBuilder(outputDirectory).buildGenerationPlans(xref);
for (GenerationPlan generationPlan : generationPlans) {
if (!generationPlan.isOutOfDate()) {
LOGGER.info("grammar [" + generationPlan.getId() + "] was up-to-date; skipping");