public RecipePipeline compile(List<String> recipe) throws RecipeException, DirectiveParseException, DirectiveLoadException, DirectiveNotFoundException { // Support only in-built directives. CompositeDirectiveRegistry registry = new CompositeDirectiveRegistry( new SystemDirectiveRegistry() ); String migrate = new MigrateToV2(recipe).migrate(); RecipeParser parser = new GrammarBasedParser(migrate, registry); parser.initialize(null); // No Directive Context. RecipePipeline pipeline = new RecipePipelineExecutor(); pipeline.initialize(parser, context); return pipeline; }