/// <summary> /// Populates the <see cref="RunInvokerTree"/> invoker graph /// with <see cref="IRunInvoker"/> generated by the run. /// </summary> /// <param name="tree">Invoker tree</param> /// <param name="parent">parent vertex</param> /// <param name="t">class type that is marked by the run</param> public override void Reflect(RunInvokerTree tree, RunInvokerVertex parent, Type t) { foreach (MethodInfo grammar in TypeHelper.GetAttributedMethods(t, typeof(GrammarAttribute))) { foreach (MethodInfo seed in TypeHelper.GetAttributedMethods(t, typeof(SeedAttribute))) { ProductionGrammarRunInvoker invoker = new ProductionGrammarRunInvoker(this, grammar, seed); tree.AddChild(parent, invoker); } } }