/// <summary> /// Defines a child block of tokens. /// </summary> /// <typeparam name="TChild"></typeparam> /// <param name="children"></param> /// <param name="identifier"></param> /// <param name="context"></param> /// <returns></returns> public ITokenBlock <TModel, TChild> Block <TChild>(Func <TModel, IEnumerable <TChild> > children, string identifier, Action <ITokenRoot <TChild> > context) { Ensure.ArgumentNotNull(children, "children"); Ensure.ArgumentNotNullOrEmpty(identifier, "identifier"); Ensure.ArgumentNotNull(context, "context"); var builder = new TokenBuilder <TChild>(); context(builder); return(Block(children, identifier, builder)); }
/// <summary> /// Defines a child conditional token for replacement. /// </summary> /// <typeparam name="TChild"></typeparam> /// <param name="replacement"></param> /// <param name="identifier"></param> /// <param name="condition"></param> /// <param name="context"></param> /// <returns></returns> public IConditionalToken <TModel, TChild> TokenizeIf <TChild>(Func <TModel, TChild> replacement, string identifier, Func <TModel, bool> condition, Action <ITokenRoot <TChild> > context) { Ensure.ArgumentNotNull(replacement, "replacement"); Ensure.ArgumentNotNullOrEmpty(identifier, "identifier"); Ensure.ArgumentNotNull(condition, "condition"); Ensure.ArgumentNotNull(context, "context"); var builder = new TokenBuilder <TChild>(); context(builder); return(TokenizeIf(replacement, identifier, condition, builder)); }