private IEnumerable <Parser <Node <TContext, TRequest, TResponse> > > GetParsers() { return(new[] { IfSetNode <TContext, TRequest, TResponse> .GetParser(Options, ViewOptions), EndIfSetNode <TContext, TRequest, TResponse> .GetParser(Options, ViewOptions), ForEachNode <TContext, TRequest, TResponse> .GetParser(Options, ViewOptions), EndForEachNode <TContext, TRequest, TResponse> .GetParser(Options, ViewOptions), IncludeNode <TContext, TRequest, TResponse> .GetParser(Options, ViewOptions), ModelNode <TContext, TRequest, TResponse> .GetParser(Options, ViewOptions), RootNode <TContext, TRequest, TResponse> .GetParser(Options, ViewOptions), ParentNode <TContext, TRequest, TResponse> .GetParser(Options, ViewOptions), ChildNode <TContext, TRequest, TResponse> .GetParser(Options, ViewOptions) } .Concat(ViewOptions.CustomExpressionParsers.Select(_ => _.Select(e => new CustomExpressionNode <TContext, TRequest, TResponse>(Options, ViewOptions, e)))) .Concat(new[] { ContentNode <TContext, TRequest, TResponse> .GetParser(Options, ViewOptions) })); }