/// <summary> /// Launches a production. /// </summary> public virtual void Produce(Object seed) { IProduction prod = this.productionFactory.CreateProduction(seed); try { this.startRule.Produce(prod.RequestToken(this.startRule)); this.OnAction(); } catch (ProductionException) { } finally { this.OnProductionFinished(); } }