public CodeNode(RazorParserVisitor visitor, SyntaxTreeNode syntaxTreeNode, string contentPart) : base(NodeKind.Code, syntaxTreeNode, contentPart) { this.visitor = visitor; this.viewProject = visitor.ViewProject; this.project = viewProject.Project; Parse(); }
public HelperExpressionNode(RazorParserVisitor visitor, SyntaxTreeNode syntaxTreeNode, string contentPart) : base(visitor, NodeKind.HelperExpression, syntaxTreeNode, contentPart) { SyntaxTree syntaxTree; CompilationUnitSyntax syntaxRoot; MethodDeclarationSyntax renderMethod; ExpressionStatementSyntax statement; ExpressionSyntax expression; var builder = new StringBuilder(); visitor.StartClass(builder); visitor.StartRender(builder); builder.AppendLineFormat("{0}{1};", " ".Repeat(8), contentPart); visitor.WrapRenderAndClass(builder); syntaxTree = CSharpSyntaxTree.ParseText(builder.ToString()); syntaxRoot = (CompilationUnitSyntax)syntaxTree.GetRoot(); renderMethod = syntaxRoot.GetRenderMethod(); statement = (ExpressionStatementSyntax)renderMethod.Body.Statements.Single(); expression = statement.Expression; if (expression is InvocationExpressionSyntax) { var invocationExpression = (InvocationExpressionSyntax)expression; if (invocationExpression.Expression is MemberAccessExpressionSyntax) { var memberAccessExpression = (MemberAccessExpressionSyntax)invocationExpression.Expression; this.Method = memberAccessExpression.Name.Identifier.Text; if (this.Method == "Partial") { this.PartialView = visitor.CreatePartialView(this.Method, invocationExpression.ArgumentList.Arguments); } } else { DebugUtils.Break(); } this.Arguments = invocationExpression.ArgumentList.Arguments; } else { DebugUtils.Break(); } Parse(); }
public CodeExpressionNode(RazorParserVisitor visitor, SyntaxTreeNode syntaxTreeNode, string contentPart) : base(visitor, NodeKind.CodeExpression, syntaxTreeNode, contentPart) { Parse(); if (contentPart.StartsWith("Model.Entity")) { this.IsModelExpression = true; if (contentPart.StartsWith("Model.Entity.")) { var modelProperty = contentPart.RemoveStart("Model.Entity."); this.ModelProperty = modelProperty; } } }
public ModelNode(RazorParserVisitor visitor, SyntaxTreeNode syntaxTreeNode, string contentPart) : base(visitor, NodeKind.Model, syntaxTreeNode, contentPart) { this.OnParent += ModelNode_OnParent; }
public RenderNode(RazorParserVisitor visitor, NodeKind kind, SyntaxTreeNode syntaxTreeNode, string contentPart) : base(visitor, kind, syntaxTreeNode, contentPart) { }
public RenderNode(RazorParserVisitor visitor, SyntaxTreeNode syntaxTreeNode, string contentPart) : base(visitor, NodeKind.Render, syntaxTreeNode, contentPart) { var syntaxRoot = this.Parse(); ParseStatements(syntaxTree, syntaxRoot, model); }
public DirectiveNode(RazorParserVisitor visitor, SyntaxTreeNode syntaxTreeNode, string contentPart) : base(visitor, NodeKind.Directive, syntaxTreeNode, contentPart) { Parse(); }