internal static Template FromBlockNode(string templateName, JinjaEnvironment environment, BlockNode blockNode, IDictionary <string, object?> variableTemplate) { var rootScope = Scope.CreateRootScope("GLOBALS", variableTemplate); var expr = NewASTCompiler.ToExpression(templateName, environment, blockNode, out var newcompiler, rootScope); return(new Template(environment, ExpressionData.CreateCompiled(expr, rootScope), blockNode.Name, null)); }
internal static CompiledTemplate FromBlockNode(string templateName, JinjaEnvironment environment, BlockNode blockNode, IDictionary <string, object?> variableTemplate) { var rootScope = CompiledScope.CreateRootScope("GLOBALS", variableTemplate); #if DEBUG var expr = NewASTCompiler.ToExpression(templateName, environment, blockNode, out var newcompiler, rootScope); return(new CompiledTemplate(environment, ExpressionData.CreateCompiled(expr, rootScope), blockNode.Name, null)); #else throw new NotImplementedException(); #endif }
//internal static Expression ToExpression(JinjaEnvironment environment, string templateText, IDictionary<string, object?> variableTemplate, out ASTCompiler compiler) //{ // var lexer = new Lexer(environment); // var tokens = lexer.Tokenize(templateText).ToArray(); // var parsed = Parser.Parse(tokens).ToArray(); // var environmentTrimmed = EnvironmentTrimming.EnvironmentTrim(parsed, environment.Settings).ToArray(); // var templateNode = ASTGenerator.ParseTemplate(environmentTrimmed); // var commentsRemoved = templateNode.Transform(CommentRemoverTransformer.Instance); // var controlledWhiteSpace = WhiteSpaceController.ControlWhiteSpace(commentsRemoved); // var containerAssembled = controlledWhiteSpace.Transform(TemplateContainerAssembler.Instance); // var finished = NewASTCompiler.ToExpression(environment, containerAssembled, variableTemplate, out var newcompiler); // throw new NotImplementedException(); //} internal static Expression ToExpression(string templateName, JinjaEnvironment environment, string templateText, CompiledScope rootScope) { var containerAssembled = ASTNode.GetTemplateNode(environment, templateText); #if DEBUG var finished = NewASTCompiler.ToExpression(templateName, environment, containerAssembled, out var newcompiler, rootScope); return(finished); #else throw new NotImplementedException(); #endif }
//internal static Expression ToExpression(JinjaEnvironment environment, string templateText, IDictionary<string, object?> variableTemplate, out ASTCompiler compiler) //{ // var lexer = new Lexer(environment); // var tokens = lexer.Tokenize(templateText).ToArray(); // var parsed = Parser.Parse(tokens).ToArray(); // var environmentTrimmed = EnvironmentTrimming.EnvironmentTrim(parsed, environment.Settings).ToArray(); // var templateNode = ASTGenerator.ParseTemplate(environmentTrimmed); // var commentsRemoved = templateNode.Transform(CommentRemoverTransformer.Instance); // var controlledWhiteSpace = WhiteSpaceController.ControlWhiteSpace(commentsRemoved); // var containerAssembled = controlledWhiteSpace.Transform(TemplateContainerAssembler.Instance); // var finished = NewASTCompiler.ToExpression(environment, containerAssembled, variableTemplate, out var newcompiler); // throw new NotImplementedException(); //} internal static Expression ToExpression(string templateName, JinjaEnvironment environment, string templateText, IScope rootScope) { var lexer = new Lexer(environment); var tokens = lexer.Tokenize(templateText).ToArray(); var parsed = Parser.Parse(tokens).ToArray(); var environmentTrimmed = EnvironmentTrimming.EnvironmentTrim(parsed, environment.Settings).ToArray(); var templateNode = ASTGenerator.ParseTemplate(environmentTrimmed); var commentsRemoved = templateNode.Transform(CommentRemoverTransformer.Instance); var controlledWhiteSpace = WhiteSpaceController.ControlWhiteSpace(commentsRemoved); var containerAssembled = controlledWhiteSpace.Transform(TemplateContainerAssembler.Instance); var finished = NewASTCompiler.ToExpression(templateName, environment, containerAssembled, out var newcompiler, rootScope); return(finished); }