public override Statement Parse(ParseTreeNode node, ParserContext context) { var expression = DefaultFluidParser.BuildExpression(context.CurrentBlock.Tag.ChildNodes[0]); var statements = context.CurrentBlock.Statements; return(new DelegateStatement((writer, encoder, ctx) => WriteToAsync(writer, encoder, ctx, expression, statements))); }
public Statement Parse(ParseTreeNode node, ParserContext context) { var expression = DefaultFluidParser.BuildExpression(node.ChildNodes[0].ChildNodes[0]); var arguments = node.ChildNodes[0].ChildNodes[1].ChildNodes.Select(DefaultFluidParser.BuildFilterArgument).ToArray(); return(new DelegateStatement((writer, encoder, ctx) => WriteToAsync(writer, encoder, ctx, expression, arguments))); }
public Statement Parse(ParseTreeNode node, ParserContext context) { var range = context.CurrentBlock.Tag.ChildNodes[0]; return(new ForStatement( context.CurrentBlock.Statements, "i", DefaultFluidParser.BuildRangeExpression(range), null, null, false)); }
public Statement Parse(ParseTreeNode node, ParserContext context) { var nodes = node.ChildNodes[0].ChildNodes; var arguments = new FilterArgument[nodes.Count]; for (var i = 0; i < nodes.Count; i++) { arguments[i] = DefaultFluidParser.BuildFilterArgument(nodes[i]); } return(new DelegateStatement((writer, encoder, ctx) => WriteToAsync(writer, encoder, ctx, arguments))); }
public Statement Parse(ParseTreeNode node, ParserContext context) { var identifier = node.ChildNodes[0].ChildNodes[0].Token.Text; var range = node.ChildNodes[0].ChildNodes[1]; return(new ForStatement( new[] { new OutputStatement(new LiteralExpression(new StringValue(identifier))) }, identifier, DefaultFluidParser.BuildRangeExpression(range), null, null, false)); }
public override Statement Parse(ParseTreeNode node, ParserContext context) { var e = context.CurrentBlock.Tag.ChildNodes[0]; var arguments = new FilterArgument[e.ChildNodes.Count]; for (var i = 0; i < e.ChildNodes.Count; i++) { arguments[i] = DefaultFluidParser.BuildFilterArgument(e.ChildNodes[i]); } var statements = context.CurrentBlock.Statements; return(new DelegateStatement((writer, encoder, ctx) => WriteToAsync(writer, encoder, ctx, arguments, statements))); }
public static FilterArgument[] BuildArguments(ParseTreeNode node) { var arguments = node.ChildNodes[0].ChildNodes.Select(DefaultFluidParser.BuildFilterArgument).ToArray(); var defaultArgument = node.ChildNodes[0].ChildNodes[0].ChildNodes[0]; if (defaultArgument.Term.Name != "identifier") { if (DefaultArguments.TryGetValue(node.Term.Name, out var name)) { arguments[0] = new FilterArgument(name, DefaultFluidParser.BuildTermExpression(defaultArgument)); } } return(arguments); }
public Statement Parse(ParseTreeNode node, ParserContext context) { var expression = DefaultFluidParser.BuildExpression(node.ChildNodes[0]); return(new DelegateStatement((writer, encoder, ctx) => WriteToAsync(writer, encoder, ctx, expression))); }