Auto generate CSharp syntax tree nodes (#2550)
* Auto generate CSharp syntax tree nodes - Auto generated syntax nodes, visitors and factories - Renamed RazorComment to RazorCommentLiteral to avoid a conflict - Modified the Visit() contract - Added new SyntaxKinds - Regenerated baselines
This commit is contained in:
parent
aac85ceb4f
commit
27a9991f21
|
|
@ -136,7 +136,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
case KnownTokenType.CommentStar:
|
||||
return SyntaxKind.RazorCommentStar;
|
||||
case KnownTokenType.CommentBody:
|
||||
return SyntaxKind.RazorComment;
|
||||
return SyntaxKind.RazorCommentLiteral;
|
||||
default:
|
||||
return SyntaxKind.Unknown;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
private new CSharpTokenizerState? CurrentState => (CSharpTokenizerState?)base.CurrentState;
|
||||
|
||||
public override SyntaxKind RazorCommentKind => SyntaxKind.RazorComment;
|
||||
public override SyntaxKind RazorCommentKind => SyntaxKind.RazorCommentLiteral;
|
||||
|
||||
public override SyntaxKind RazorCommentTransitionKind => SyntaxKind.RazorCommentTransition;
|
||||
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
return kind != SyntaxKind.Whitespace &&
|
||||
kind != SyntaxKind.NewLine &&
|
||||
kind != SyntaxKind.CSharpComment &&
|
||||
kind != SyntaxKind.RazorComment &&
|
||||
kind != SyntaxKind.RazorCommentLiteral &&
|
||||
kind != SyntaxKind.RazorCommentStar &&
|
||||
kind != SyntaxKind.RazorCommentTransition &&
|
||||
kind != SyntaxKind.Transition;
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
return kind != SyntaxKind.Whitespace &&
|
||||
kind != SyntaxKind.NewLine &&
|
||||
kind != SyntaxKind.RazorComment &&
|
||||
kind != SyntaxKind.RazorCommentLiteral &&
|
||||
kind != SyntaxKind.RazorCommentStar &&
|
||||
kind != SyntaxKind.RazorCommentTransition &&
|
||||
kind != SyntaxKind.Transition;
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
return "@";
|
||||
case SyntaxKind.Colon:
|
||||
return ":";
|
||||
case SyntaxKind.RazorComment:
|
||||
case SyntaxKind.RazorCommentLiteral:
|
||||
return Resources.HtmlToken_RazorComment;
|
||||
case SyntaxKind.RazorCommentStar:
|
||||
return "*";
|
||||
|
|
@ -104,7 +104,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
case KnownTokenType.CommentStar:
|
||||
return SyntaxKind.RazorCommentStar;
|
||||
case KnownTokenType.CommentBody:
|
||||
return SyntaxKind.RazorComment;
|
||||
return SyntaxKind.RazorCommentLiteral;
|
||||
case KnownTokenType.Identifier:
|
||||
return SyntaxKind.HtmlTextLiteral;
|
||||
case KnownTokenType.Keyword:
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
public override SyntaxKind RazorCommentKind
|
||||
{
|
||||
get { return SyntaxKind.RazorComment; }
|
||||
get { return SyntaxKind.RazorCommentLiteral; }
|
||||
}
|
||||
|
||||
public override SyntaxKind RazorCommentTransitionKind
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,375 @@
|
|||
// <auto-generated />
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
||||
{
|
||||
internal partial class SyntaxVisitor<TResult>
|
||||
{
|
||||
/// <summary>Called when the visitor visits a RazorCommentBlockSyntax node.</summary>
|
||||
public virtual TResult VisitRazorCommentBlock(RazorCommentBlockSyntax node)
|
||||
{
|
||||
return DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a HtmlTextSyntax node.</summary>
|
||||
public virtual TResult VisitHtmlText(HtmlTextSyntax node)
|
||||
{
|
||||
return DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpTransitionSyntax node.</summary>
|
||||
public virtual TResult VisitCSharpTransition(CSharpTransitionSyntax node)
|
||||
{
|
||||
return DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpMetaCodeSyntax node.</summary>
|
||||
public virtual TResult VisitCSharpMetaCode(CSharpMetaCodeSyntax node)
|
||||
{
|
||||
return DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpCodeLiteralSyntax node.</summary>
|
||||
public virtual TResult VisitCSharpCodeLiteral(CSharpCodeLiteralSyntax node)
|
||||
{
|
||||
return DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpCodeBlockSyntax node.</summary>
|
||||
public virtual TResult VisitCSharpCodeBlock(CSharpCodeBlockSyntax node)
|
||||
{
|
||||
return DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpStatement node.</summary>
|
||||
public virtual TResult VisitCSharpStatement(CSharpStatement node)
|
||||
{
|
||||
return DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpStatementBodySyntax node.</summary>
|
||||
public virtual TResult VisitCSharpStatementBody(CSharpStatementBodySyntax node)
|
||||
{
|
||||
return DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpExpression node.</summary>
|
||||
public virtual TResult VisitCSharpExpression(CSharpExpression node)
|
||||
{
|
||||
return DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpExpressionBodySyntax node.</summary>
|
||||
public virtual TResult VisitCSharpExpressionBody(CSharpExpressionBodySyntax node)
|
||||
{
|
||||
return DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpDirectiveSyntax node.</summary>
|
||||
public virtual TResult VisitCSharpDirective(CSharpDirectiveSyntax node)
|
||||
{
|
||||
return DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpDirectiveBodySyntax node.</summary>
|
||||
public virtual TResult VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax node)
|
||||
{
|
||||
return DefaultVisit(node);
|
||||
}
|
||||
}
|
||||
|
||||
internal partial class SyntaxVisitor
|
||||
{
|
||||
/// <summary>Called when the visitor visits a RazorCommentBlockSyntax node.</summary>
|
||||
public virtual void VisitRazorCommentBlock(RazorCommentBlockSyntax node)
|
||||
{
|
||||
DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a HtmlTextSyntax node.</summary>
|
||||
public virtual void VisitHtmlText(HtmlTextSyntax node)
|
||||
{
|
||||
DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpTransitionSyntax node.</summary>
|
||||
public virtual void VisitCSharpTransition(CSharpTransitionSyntax node)
|
||||
{
|
||||
DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpMetaCodeSyntax node.</summary>
|
||||
public virtual void VisitCSharpMetaCode(CSharpMetaCodeSyntax node)
|
||||
{
|
||||
DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpCodeLiteralSyntax node.</summary>
|
||||
public virtual void VisitCSharpCodeLiteral(CSharpCodeLiteralSyntax node)
|
||||
{
|
||||
DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpCodeBlockSyntax node.</summary>
|
||||
public virtual void VisitCSharpCodeBlock(CSharpCodeBlockSyntax node)
|
||||
{
|
||||
DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpStatement node.</summary>
|
||||
public virtual void VisitCSharpStatement(CSharpStatement node)
|
||||
{
|
||||
DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpStatementBodySyntax node.</summary>
|
||||
public virtual void VisitCSharpStatementBody(CSharpStatementBodySyntax node)
|
||||
{
|
||||
DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpExpression node.</summary>
|
||||
public virtual void VisitCSharpExpression(CSharpExpression node)
|
||||
{
|
||||
DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpExpressionBodySyntax node.</summary>
|
||||
public virtual void VisitCSharpExpressionBody(CSharpExpressionBodySyntax node)
|
||||
{
|
||||
DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpDirectiveSyntax node.</summary>
|
||||
public virtual void VisitCSharpDirective(CSharpDirectiveSyntax node)
|
||||
{
|
||||
DefaultVisit(node);
|
||||
}
|
||||
|
||||
/// <summary>Called when the visitor visits a CSharpDirectiveBodySyntax node.</summary>
|
||||
public virtual void VisitCSharpDirectiveBody(CSharpDirectiveBodySyntax node)
|
||||
{
|
||||
DefaultVisit(node);
|
||||
}
|
||||
}
|
||||
|
||||
internal static partial class SyntaxFactory
|
||||
{
|
||||
/// <summary>Creates a new RazorCommentBlockSyntax instance.</summary>
|
||||
public static RazorCommentBlockSyntax RazorCommentBlock(SyntaxToken startCommentTransition, SyntaxToken startCommentStar, SyntaxToken comment, SyntaxToken endCommentStar, SyntaxToken endCommentTransition)
|
||||
{
|
||||
switch (startCommentTransition.Kind)
|
||||
{
|
||||
case SyntaxKind.RazorCommentTransition:
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("startCommentTransition");
|
||||
}
|
||||
switch (startCommentStar.Kind)
|
||||
{
|
||||
case SyntaxKind.RazorCommentStar:
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("startCommentStar");
|
||||
}
|
||||
switch (comment.Kind)
|
||||
{
|
||||
case SyntaxKind.RazorComment:
|
||||
case SyntaxKind.Unknown:
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("comment");
|
||||
}
|
||||
switch (endCommentStar.Kind)
|
||||
{
|
||||
case SyntaxKind.RazorCommentStar:
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("endCommentStar");
|
||||
}
|
||||
switch (endCommentTransition.Kind)
|
||||
{
|
||||
case SyntaxKind.RazorCommentTransition:
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("endCommentTransition");
|
||||
}
|
||||
return (RazorCommentBlockSyntax)InternalSyntax.SyntaxFactory.RazorCommentBlock((Syntax.InternalSyntax.SyntaxToken)startCommentTransition.Green, (Syntax.InternalSyntax.SyntaxToken)startCommentStar.Green, (Syntax.InternalSyntax.SyntaxToken)comment.Green, (Syntax.InternalSyntax.SyntaxToken)endCommentStar.Green, (Syntax.InternalSyntax.SyntaxToken)endCommentTransition.Green).CreateRed();
|
||||
}
|
||||
|
||||
/// <summary>Creates a new RazorCommentBlockSyntax instance.</summary>
|
||||
public static RazorCommentBlockSyntax RazorCommentBlock()
|
||||
{
|
||||
return SyntaxFactory.RazorCommentBlock(SyntaxFactory.Token(SyntaxKind.RazorCommentTransition), SyntaxFactory.Token(SyntaxKind.RazorCommentStar), default(SyntaxToken), SyntaxFactory.Token(SyntaxKind.RazorCommentStar), SyntaxFactory.Token(SyntaxKind.RazorCommentTransition));
|
||||
}
|
||||
|
||||
/// <summary>Creates a new HtmlTextSyntax instance.</summary>
|
||||
public static HtmlTextSyntax HtmlText(SyntaxList<SyntaxToken> textTokens)
|
||||
{
|
||||
return (HtmlTextSyntax)InternalSyntax.SyntaxFactory.HtmlText(textTokens.Node.ToGreenList<InternalSyntax.SyntaxToken>()).CreateRed();
|
||||
}
|
||||
|
||||
/// <summary>Creates a new HtmlTextSyntax instance.</summary>
|
||||
public static HtmlTextSyntax HtmlText()
|
||||
{
|
||||
return SyntaxFactory.HtmlText(default(SyntaxList<SyntaxToken>));
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpTransitionSyntax instance.</summary>
|
||||
public static CSharpTransitionSyntax CSharpTransition(SyntaxToken transition)
|
||||
{
|
||||
switch (transition.Kind)
|
||||
{
|
||||
case SyntaxKind.Transition:
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException("transition");
|
||||
}
|
||||
return (CSharpTransitionSyntax)InternalSyntax.SyntaxFactory.CSharpTransition((Syntax.InternalSyntax.SyntaxToken)transition.Green).CreateRed();
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpTransitionSyntax instance.</summary>
|
||||
public static CSharpTransitionSyntax CSharpTransition()
|
||||
{
|
||||
return SyntaxFactory.CSharpTransition(SyntaxFactory.Token(SyntaxKind.Transition));
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpMetaCodeSyntax instance.</summary>
|
||||
public static CSharpMetaCodeSyntax CSharpMetaCode(SyntaxList<SyntaxToken> metaCode)
|
||||
{
|
||||
return (CSharpMetaCodeSyntax)InternalSyntax.SyntaxFactory.CSharpMetaCode(metaCode.Node.ToGreenList<InternalSyntax.SyntaxToken>()).CreateRed();
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpMetaCodeSyntax instance.</summary>
|
||||
public static CSharpMetaCodeSyntax CSharpMetaCode()
|
||||
{
|
||||
return SyntaxFactory.CSharpMetaCode(default(SyntaxList<SyntaxToken>));
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpCodeLiteralSyntax instance.</summary>
|
||||
public static CSharpCodeLiteralSyntax CSharpCodeLiteral(SyntaxList<SyntaxToken> cSharpTokens)
|
||||
{
|
||||
return (CSharpCodeLiteralSyntax)InternalSyntax.SyntaxFactory.CSharpCodeLiteral(cSharpTokens.Node.ToGreenList<InternalSyntax.SyntaxToken>()).CreateRed();
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpCodeLiteralSyntax instance.</summary>
|
||||
public static CSharpCodeLiteralSyntax CSharpCodeLiteral()
|
||||
{
|
||||
return SyntaxFactory.CSharpCodeLiteral(default(SyntaxList<SyntaxToken>));
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpCodeBlockSyntax instance.</summary>
|
||||
public static CSharpCodeBlockSyntax CSharpCodeBlock(SyntaxList<RazorSyntaxNode> children)
|
||||
{
|
||||
return (CSharpCodeBlockSyntax)InternalSyntax.SyntaxFactory.CSharpCodeBlock(children.Node.ToGreenList<InternalSyntax.RazorSyntaxNode>()).CreateRed();
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpCodeBlockSyntax instance.</summary>
|
||||
public static CSharpCodeBlockSyntax CSharpCodeBlock()
|
||||
{
|
||||
return SyntaxFactory.CSharpCodeBlock(default(SyntaxList<RazorSyntaxNode>));
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpStatement instance.</summary>
|
||||
public static CSharpStatement CSharpStatement(CSharpTransitionSyntax transition, CSharpSyntaxNode body)
|
||||
{
|
||||
if (transition == null)
|
||||
throw new ArgumentNullException(nameof(transition));
|
||||
if (body == null)
|
||||
throw new ArgumentNullException(nameof(body));
|
||||
return (CSharpStatement)InternalSyntax.SyntaxFactory.CSharpStatement(transition == null ? null : (InternalSyntax.CSharpTransitionSyntax)transition.Green, body == null ? null : (InternalSyntax.CSharpSyntaxNode)body.Green).CreateRed();
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpStatement instance.</summary>
|
||||
public static CSharpStatement CSharpStatement(CSharpSyntaxNode body)
|
||||
{
|
||||
return SyntaxFactory.CSharpStatement(SyntaxFactory.CSharpTransition(), body);
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpStatementBodySyntax instance.</summary>
|
||||
public static CSharpStatementBodySyntax CSharpStatementBody(CSharpMetaCodeSyntax openBrace, CSharpCodeBlockSyntax cSharpCode, CSharpMetaCodeSyntax closeBrace)
|
||||
{
|
||||
if (openBrace == null)
|
||||
throw new ArgumentNullException(nameof(openBrace));
|
||||
if (cSharpCode == null)
|
||||
throw new ArgumentNullException(nameof(cSharpCode));
|
||||
if (closeBrace == null)
|
||||
throw new ArgumentNullException(nameof(closeBrace));
|
||||
return (CSharpStatementBodySyntax)InternalSyntax.SyntaxFactory.CSharpStatementBody(openBrace == null ? null : (InternalSyntax.CSharpMetaCodeSyntax)openBrace.Green, cSharpCode == null ? null : (InternalSyntax.CSharpCodeBlockSyntax)cSharpCode.Green, closeBrace == null ? null : (InternalSyntax.CSharpMetaCodeSyntax)closeBrace.Green).CreateRed();
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpStatementBodySyntax instance.</summary>
|
||||
public static CSharpStatementBodySyntax CSharpStatementBody()
|
||||
{
|
||||
return SyntaxFactory.CSharpStatementBody(SyntaxFactory.CSharpMetaCode(), SyntaxFactory.CSharpCodeBlock(), SyntaxFactory.CSharpMetaCode());
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpExpression instance.</summary>
|
||||
public static CSharpExpression CSharpExpression(CSharpTransitionSyntax transition, CSharpSyntaxNode body)
|
||||
{
|
||||
if (transition == null)
|
||||
throw new ArgumentNullException(nameof(transition));
|
||||
if (body == null)
|
||||
throw new ArgumentNullException(nameof(body));
|
||||
return (CSharpExpression)InternalSyntax.SyntaxFactory.CSharpExpression(transition == null ? null : (InternalSyntax.CSharpTransitionSyntax)transition.Green, body == null ? null : (InternalSyntax.CSharpSyntaxNode)body.Green).CreateRed();
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpExpression instance.</summary>
|
||||
public static CSharpExpression CSharpExpression(CSharpSyntaxNode body)
|
||||
{
|
||||
return SyntaxFactory.CSharpExpression(SyntaxFactory.CSharpTransition(), body);
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpExpressionBodySyntax instance.</summary>
|
||||
public static CSharpExpressionBodySyntax CSharpExpressionBody(CSharpMetaCodeSyntax openParen, CSharpCodeBlockSyntax cSharpCode, CSharpMetaCodeSyntax closeParen)
|
||||
{
|
||||
if (cSharpCode == null)
|
||||
throw new ArgumentNullException(nameof(cSharpCode));
|
||||
return (CSharpExpressionBodySyntax)InternalSyntax.SyntaxFactory.CSharpExpressionBody(openParen == null ? null : (InternalSyntax.CSharpMetaCodeSyntax)openParen.Green, cSharpCode == null ? null : (InternalSyntax.CSharpCodeBlockSyntax)cSharpCode.Green, closeParen == null ? null : (InternalSyntax.CSharpMetaCodeSyntax)closeParen.Green).CreateRed();
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpExpressionBodySyntax instance.</summary>
|
||||
public static CSharpExpressionBodySyntax CSharpExpressionBody()
|
||||
{
|
||||
return SyntaxFactory.CSharpExpressionBody(default(CSharpMetaCodeSyntax), SyntaxFactory.CSharpCodeBlock(), default(CSharpMetaCodeSyntax));
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpDirectiveSyntax instance.</summary>
|
||||
public static CSharpDirectiveSyntax CSharpDirective(CSharpTransitionSyntax transition, CSharpSyntaxNode body)
|
||||
{
|
||||
if (transition == null)
|
||||
throw new ArgumentNullException(nameof(transition));
|
||||
if (body == null)
|
||||
throw new ArgumentNullException(nameof(body));
|
||||
return (CSharpDirectiveSyntax)InternalSyntax.SyntaxFactory.CSharpDirective(transition == null ? null : (InternalSyntax.CSharpTransitionSyntax)transition.Green, body == null ? null : (InternalSyntax.CSharpSyntaxNode)body.Green).CreateRed();
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpDirectiveSyntax instance.</summary>
|
||||
public static CSharpDirectiveSyntax CSharpDirective(CSharpSyntaxNode body)
|
||||
{
|
||||
return SyntaxFactory.CSharpDirective(SyntaxFactory.CSharpTransition(), body);
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpDirectiveBodySyntax instance.</summary>
|
||||
public static CSharpDirectiveBodySyntax CSharpDirectiveBody(CSharpMetaCodeSyntax keyword, CSharpCodeBlockSyntax cSharpCode)
|
||||
{
|
||||
if (keyword == null)
|
||||
throw new ArgumentNullException(nameof(keyword));
|
||||
if (cSharpCode == null)
|
||||
throw new ArgumentNullException(nameof(cSharpCode));
|
||||
return (CSharpDirectiveBodySyntax)InternalSyntax.SyntaxFactory.CSharpDirectiveBody(keyword == null ? null : (InternalSyntax.CSharpMetaCodeSyntax)keyword.Green, cSharpCode == null ? null : (InternalSyntax.CSharpCodeBlockSyntax)cSharpCode.Green).CreateRed();
|
||||
}
|
||||
|
||||
/// <summary>Creates a new CSharpDirectiveBodySyntax instance.</summary>
|
||||
public static CSharpDirectiveBodySyntax CSharpDirectiveBody()
|
||||
{
|
||||
return SyntaxFactory.CSharpDirectiveBody(SyntaxFactory.CSharpMetaCode(), SyntaxFactory.CSharpCodeBlock());
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -481,10 +481,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
|||
internal abstract SyntaxNode CreateRed(SyntaxNode parent, int position);
|
||||
#endregion
|
||||
|
||||
internal virtual GreenNode Accept(InternalSyntax.SyntaxVisitor visitor)
|
||||
{
|
||||
return visitor.Visit(this);
|
||||
}
|
||||
public abstract TResult Accept<TResult>(InternalSyntax.SyntaxVisitor<TResult> visitor);
|
||||
|
||||
public abstract void Accept(InternalSyntax.SyntaxVisitor visitor);
|
||||
|
||||
#region StaticMethods
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,56 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
||||
{
|
||||
internal static class GreenNodeExtensions
|
||||
{
|
||||
internal static InternalSyntax.SyntaxList<T> ToGreenList<T>(this SyntaxNode node) where T : GreenNode
|
||||
{
|
||||
return node != null ?
|
||||
ToGreenList<T>(node.Green) :
|
||||
default(InternalSyntax.SyntaxList<T>);
|
||||
}
|
||||
|
||||
internal static InternalSyntax.SyntaxList<T> ToGreenList<T>(this GreenNode node) where T : GreenNode
|
||||
{
|
||||
return new InternalSyntax.SyntaxList<T>(node);
|
||||
}
|
||||
|
||||
public static TNode WithAnnotationsGreen<TNode>(this TNode node, IEnumerable<SyntaxAnnotation> annotations) where TNode : GreenNode
|
||||
{
|
||||
var newAnnotations = new List<SyntaxAnnotation>();
|
||||
foreach (var candidate in annotations)
|
||||
{
|
||||
if (!newAnnotations.Contains(candidate))
|
||||
{
|
||||
newAnnotations.Add(candidate);
|
||||
}
|
||||
}
|
||||
|
||||
if (newAnnotations.Count == 0)
|
||||
{
|
||||
var existingAnnotations = node.GetAnnotations();
|
||||
if (existingAnnotations == null || existingAnnotations.Length == 0)
|
||||
{
|
||||
return node;
|
||||
}
|
||||
else
|
||||
{
|
||||
return (TNode)node.SetAnnotations(null);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return (TNode)node.SetAnnotations(newAnnotations.ToArray());
|
||||
}
|
||||
}
|
||||
|
||||
public static TNode WithDiagnosticsGreen<TNode>(this TNode node, RazorDiagnostic[] diagnostics) where TNode : GreenNode
|
||||
{
|
||||
return (TNode)node.SetDiagnostics(diagnostics);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
||||
{
|
||||
internal abstract class HtmlNodeSyntax : SyntaxNode
|
||||
{
|
||||
internal HtmlNodeSyntax(GreenNode green, SyntaxNode parent, int position)
|
||||
: base(green, parent, position)
|
||||
{
|
||||
}
|
||||
|
||||
internal new InternalSyntax.HtmlNodeSyntax Green => (InternalSyntax.HtmlNodeSyntax)base.Green;
|
||||
|
||||
internal override SyntaxNode Accept(SyntaxVisitor visitor)
|
||||
{
|
||||
return visitor.VisitHtmlNode(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
||||
{
|
||||
internal class HtmlTextSyntax : HtmlNodeSyntax
|
||||
{
|
||||
private SyntaxNode _textTokens;
|
||||
|
||||
internal HtmlTextSyntax(GreenNode green, SyntaxNode parent, int position)
|
||||
: base(green, parent, position)
|
||||
{
|
||||
}
|
||||
|
||||
public SyntaxList<SyntaxNode> TextTokens => new SyntaxList<SyntaxNode>(GetRed(ref _textTokens, 0));
|
||||
|
||||
public string Value => TextTokens[0]?.ToFullString() ?? string.Empty;
|
||||
|
||||
internal override SyntaxNode Accept(SyntaxVisitor visitor)
|
||||
{
|
||||
return visitor.VisitHtmlText(this);
|
||||
}
|
||||
|
||||
internal override SyntaxNode GetCachedSlot(int index)
|
||||
{
|
||||
switch (index)
|
||||
{
|
||||
case 0: return _textTokens;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
internal override SyntaxNode GetNodeSlot(int slot)
|
||||
{
|
||||
switch (slot)
|
||||
{
|
||||
case 0: return GetRed(ref _textTokens, 0);
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax
|
||||
{
|
||||
internal abstract class HtmlNodeSyntax : GreenNode
|
||||
{
|
||||
protected HtmlNodeSyntax(SyntaxKind kind)
|
||||
: base(kind)
|
||||
{
|
||||
}
|
||||
|
||||
protected HtmlNodeSyntax(SyntaxKind kind, int fullWidth)
|
||||
: base(kind, fullWidth)
|
||||
{
|
||||
}
|
||||
|
||||
protected HtmlNodeSyntax(SyntaxKind kind, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations)
|
||||
: base(kind, diagnostics, annotations)
|
||||
{
|
||||
}
|
||||
|
||||
internal override GreenNode Accept(SyntaxVisitor visitor)
|
||||
{
|
||||
return visitor.VisitHtmlNode(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax
|
||||
{
|
||||
internal class HtmlTextSyntax : HtmlNodeSyntax
|
||||
{
|
||||
private readonly GreenNode _value;
|
||||
|
||||
internal HtmlTextSyntax(GreenNode value) : base(SyntaxKind.HtmlText)
|
||||
{
|
||||
SlotCount = 1;
|
||||
_value = value;
|
||||
AdjustFlagsAndWidth(value);
|
||||
}
|
||||
|
||||
internal HtmlTextSyntax(GreenNode value, RazorDiagnostic[] diagnostics, SyntaxAnnotation[] annotations)
|
||||
: base(SyntaxKind.HtmlText, diagnostics, annotations)
|
||||
{
|
||||
SlotCount = 1;
|
||||
_value = value;
|
||||
AdjustFlagsAndWidth(value);
|
||||
}
|
||||
|
||||
internal SyntaxList<GreenNode> TextTokens => new SyntaxList<GreenNode>(_value);
|
||||
|
||||
internal override GreenNode GetSlot(int index)
|
||||
{
|
||||
switch (index)
|
||||
{
|
||||
case 0: return _value;
|
||||
}
|
||||
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
internal override GreenNode Accept(SyntaxVisitor visitor)
|
||||
{
|
||||
return visitor.VisitHtmlText(this);
|
||||
}
|
||||
|
||||
internal override SyntaxNode CreateRed(SyntaxNode parent, int position)
|
||||
{
|
||||
return new Syntax.HtmlTextSyntax(this, parent, position);
|
||||
}
|
||||
|
||||
internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics)
|
||||
{
|
||||
return new HtmlTextSyntax(_value, diagnostics, GetAnnotations());
|
||||
}
|
||||
|
||||
internal override GreenNode SetAnnotations(SyntaxAnnotation[] annotations)
|
||||
{
|
||||
return new HtmlTextSyntax(_value, GetDiagnostics(), annotations);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6,13 +6,8 @@ using System.Linq;
|
|||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax
|
||||
{
|
||||
internal static class SyntaxFactory
|
||||
internal static partial class SyntaxFactory
|
||||
{
|
||||
internal static HtmlTextSyntax HtmlText(SyntaxList<SyntaxToken> textTokens)
|
||||
{
|
||||
return new HtmlTextSyntax(textTokens.Node);
|
||||
}
|
||||
|
||||
internal static SyntaxToken Token(SyntaxKind kind, string content, IEnumerable<RazorDiagnostic> diagnostics)
|
||||
{
|
||||
return Token(kind, content, diagnostics.ToArray());
|
||||
|
|
|
|||
|
|
@ -121,6 +121,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax
|
|||
}
|
||||
}
|
||||
|
||||
public override TResult Accept<TResult>(SyntaxVisitor<TResult> visitor)
|
||||
{
|
||||
return visitor.Visit(this);
|
||||
}
|
||||
|
||||
public override void Accept(SyntaxVisitor visitor)
|
||||
{
|
||||
visitor.Visit(this);
|
||||
}
|
||||
|
||||
internal class WithTwoChildren : SyntaxList
|
||||
{
|
||||
private readonly GreenNode _child0;
|
||||
|
|
|
|||
|
|
@ -134,9 +134,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax
|
|||
throw new InvalidOperationException("Tokens don't have slots.");
|
||||
}
|
||||
|
||||
internal override GreenNode Accept(SyntaxVisitor visitor)
|
||||
public override TResult Accept<TResult>(SyntaxVisitor<TResult> visitor)
|
||||
{
|
||||
return visitor.VisitSyntaxToken(this);
|
||||
return visitor.VisitToken(this);
|
||||
}
|
||||
|
||||
public override void Accept(SyntaxVisitor visitor)
|
||||
{
|
||||
visitor.VisitToken(this);
|
||||
}
|
||||
|
||||
public override bool IsEquivalentTo(GreenNode other)
|
||||
|
|
|
|||
|
|
@ -62,9 +62,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax
|
|||
return new Syntax.SyntaxTrivia(this, parent, position);
|
||||
}
|
||||
|
||||
internal override GreenNode Accept(SyntaxVisitor visitor)
|
||||
public override TResult Accept<TResult>(SyntaxVisitor<TResult> visitor)
|
||||
{
|
||||
return visitor.VisitSyntaxTrivia(this);
|
||||
return visitor.VisitTrivia(this);
|
||||
}
|
||||
|
||||
public override void Accept(SyntaxVisitor visitor)
|
||||
{
|
||||
visitor.VisitTrivia(this);
|
||||
}
|
||||
|
||||
internal override GreenNode SetDiagnostics(RazorDiagnostic[] diagnostics)
|
||||
|
|
|
|||
|
|
@ -3,41 +3,58 @@
|
|||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Syntax.InternalSyntax
|
||||
{
|
||||
internal abstract class SyntaxVisitor
|
||||
internal abstract partial class SyntaxVisitor<TResult>
|
||||
{
|
||||
public virtual TResult Visit(GreenNode node)
|
||||
{
|
||||
if (node == null)
|
||||
{
|
||||
return default(TResult);
|
||||
}
|
||||
|
||||
return node.Accept(this);
|
||||
}
|
||||
|
||||
public virtual TResult VisitToken(SyntaxToken token)
|
||||
{
|
||||
return DefaultVisit(token);
|
||||
}
|
||||
|
||||
public virtual TResult VisitTrivia(SyntaxTrivia trivia)
|
||||
{
|
||||
return DefaultVisit(trivia);
|
||||
}
|
||||
|
||||
protected virtual TResult DefaultVisit(GreenNode node)
|
||||
{
|
||||
return default(TResult);
|
||||
}
|
||||
}
|
||||
|
||||
internal abstract partial class SyntaxVisitor
|
||||
{
|
||||
public virtual GreenNode Visit(GreenNode node)
|
||||
{
|
||||
if (node != null)
|
||||
{
|
||||
return node.Accept(this);
|
||||
node.Accept(this);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public virtual GreenNode VisitSyntaxNode(GreenNode node)
|
||||
public virtual void VisitToken(SyntaxToken token)
|
||||
{
|
||||
return node;
|
||||
DefaultVisit(token);
|
||||
}
|
||||
|
||||
public virtual GreenNode VisitHtmlNode(HtmlNodeSyntax node)
|
||||
public virtual void VisitTrivia(SyntaxTrivia trivia)
|
||||
{
|
||||
return VisitSyntaxNode(node);
|
||||
DefaultVisit(trivia);
|
||||
}
|
||||
|
||||
public virtual GreenNode VisitHtmlText(HtmlTextSyntax node)
|
||||
protected virtual void DefaultVisit(GreenNode node)
|
||||
{
|
||||
return VisitHtmlNode(node);
|
||||
}
|
||||
|
||||
public virtual SyntaxToken VisitSyntaxToken(SyntaxToken token)
|
||||
{
|
||||
return token;
|
||||
}
|
||||
|
||||
public virtual SyntaxTrivia VisitSyntaxTrivia(SyntaxTrivia trivia)
|
||||
{
|
||||
return trivia;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
|
||||
<Tree Root="SyntaxNode">
|
||||
<PredefinedNode Name="SyntaxToken" Base="SyntaxNode" />
|
||||
|
||||
<!-- Common -->
|
||||
<AbstractNode Name="RazorSyntaxNode" Base="SyntaxNode" />
|
||||
<Node Name="RazorCommentBlockSyntax" Base="RazorSyntaxNode">
|
||||
<Kind Name="RazorComment" />
|
||||
<Field Name="StartCommentTransition" Type="SyntaxToken">
|
||||
<Kind Name="RazorCommentTransition" />
|
||||
</Field>
|
||||
<Field Name="StartCommentStar" Type="SyntaxToken">
|
||||
<Kind Name="RazorCommentStar" />
|
||||
</Field>
|
||||
<Field Name="Comment" Type="SyntaxToken" Optional="true">
|
||||
<Kind Name="RazorComment" />
|
||||
</Field>
|
||||
<Field Name="EndCommentStar" Type="SyntaxToken">
|
||||
<Kind Name="RazorCommentStar" />
|
||||
</Field>
|
||||
<Field Name="EndCommentTransition" Type="SyntaxToken">
|
||||
<Kind Name="RazorCommentTransition" />
|
||||
</Field>
|
||||
</Node>
|
||||
|
||||
<!-- HTML -->
|
||||
<AbstractNode Name="HtmlSyntaxNode" Base="RazorSyntaxNode" />
|
||||
<Node Name="HtmlTextSyntax" Base="HtmlSyntaxNode">
|
||||
<Kind Name="HtmlText" />
|
||||
<Field Name="TextTokens" Type="SyntaxList<SyntaxToken>" />
|
||||
</Node>
|
||||
|
||||
<!-- CSharp -->
|
||||
<AbstractNode Name="CSharpSyntaxNode" Base="RazorSyntaxNode" />
|
||||
<Node Name="CSharpTransitionSyntax" Base="CSharpSyntaxNode">
|
||||
<Kind Name="CSharpTransition" />
|
||||
<Field Name="Transition" Type="SyntaxToken">
|
||||
<Kind Name="Transition" />
|
||||
</Field>
|
||||
</Node>
|
||||
<Node Name="CSharpMetaCodeSyntax" Base="CSharpSyntaxNode">
|
||||
<Kind Name="CSharpMetaCode" />
|
||||
<Field Name="MetaCode" Type="SyntaxList<SyntaxToken>" />
|
||||
</Node>
|
||||
<Node Name="CSharpCodeLiteralSyntax" Base="CSharpSyntaxNode">
|
||||
<Kind Name="CSharpCodeLiteral" />
|
||||
<Field Name="CSharpTokens" Type="SyntaxList<SyntaxToken>" />
|
||||
</Node>
|
||||
<Node Name="CSharpCodeBlockSyntax" Base="CSharpSyntaxNode">
|
||||
<Kind Name="CSharpCodeBlock" />
|
||||
<Field Name="Children" Type="SyntaxList<RazorSyntaxNode>" />
|
||||
</Node>
|
||||
<AbstractNode Name="CSharpBlockSyntax" Base="CSharpSyntaxNode">
|
||||
<Field Name="Transition" Type="CSharpTransitionSyntax" />
|
||||
<Field Name="Body" Type="CSharpSyntaxNode" />
|
||||
</AbstractNode>
|
||||
<Node Name="CSharpStatement" Base="CSharpBlockSyntax">
|
||||
<Kind Name="CSharpStatement" />
|
||||
<Field Name="Transition" Type="CSharpTransitionSyntax" Override="true">
|
||||
<Kind Name="CSharpTransition" />
|
||||
</Field>
|
||||
<Field Name="Body" Type="CSharpSyntaxNode" Override="true">
|
||||
<Kind Name="CSharpStatementBody" />
|
||||
</Field>
|
||||
</Node>
|
||||
<Node Name="CSharpStatementBodySyntax" Base="CSharpSyntaxNode">
|
||||
<Kind Name="CSharpStatementBody" />
|
||||
<Field Name="OpenBrace" Type="CSharpMetaCodeSyntax" />
|
||||
<Field Name="CSharpCode" Type="CSharpCodeBlockSyntax" />
|
||||
<Field Name="CloseBrace" Type="CSharpMetaCodeSyntax" />
|
||||
</Node>
|
||||
<Node Name="CSharpExpression" Base="CSharpBlockSyntax">
|
||||
<Kind Name="CSharpExpression" />
|
||||
<Field Name="Transition" Type="CSharpTransitionSyntax" Override="true">
|
||||
<Kind Name="CSharpTransition" />
|
||||
</Field>
|
||||
<Field Name="Body" Type="CSharpSyntaxNode" Override="true">
|
||||
<Kind Name="CSharpExpressionBody" />
|
||||
</Field>
|
||||
</Node>
|
||||
<Node Name="CSharpExpressionBodySyntax" Base="CSharpSyntaxNode">
|
||||
<Kind Name="CSharpExpressionBody" />
|
||||
<Field Name="OpenParen" Type="CSharpMetaCodeSyntax" Optional="true" />
|
||||
<Field Name="CSharpCode" Type="CSharpCodeBlockSyntax" />
|
||||
<Field Name="CloseParen" Type="CSharpMetaCodeSyntax" Optional="true" />
|
||||
</Node>
|
||||
<Node Name="CSharpDirectiveSyntax" Base="CSharpBlockSyntax">
|
||||
<Kind Name="CSharpDirective" />
|
||||
<Field Name="Transition" Type="CSharpTransitionSyntax" Override="true">
|
||||
<Kind Name="CSharpTransition" />
|
||||
</Field>
|
||||
<Field Name="Body" Type="CSharpSyntaxNode" Override="true">
|
||||
<Kind Name="CSharpDirectiveBody" />
|
||||
</Field>
|
||||
</Node>
|
||||
<Node Name="CSharpDirectiveBodySyntax" Base="CSharpSyntaxNode">
|
||||
<Kind Name="CSharpDirectiveBody" />
|
||||
<Field Name="Keyword" Type="CSharpMetaCodeSyntax" />
|
||||
<Field Name="CSharpCode" Type="CSharpCodeBlockSyntax" />
|
||||
</Node>
|
||||
</Tree>
|
||||
|
|
@ -3,9 +3,14 @@
|
|||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
||||
{
|
||||
internal static class SyntaxFactory
|
||||
internal static partial class SyntaxFactory
|
||||
{
|
||||
internal static SyntaxToken Token(SyntaxKind kind, string content, params RazorDiagnostic[] diagnostics)
|
||||
public static SyntaxToken Token(SyntaxKind kind, params RazorDiagnostic[] diagnostics)
|
||||
{
|
||||
return Token(kind, content: string.Empty, diagnostics: diagnostics);
|
||||
}
|
||||
|
||||
public static SyntaxToken Token(SyntaxKind kind, string content, params RazorDiagnostic[] diagnostics)
|
||||
{
|
||||
return new SyntaxToken(InternalSyntax.SyntaxFactory.Token(kind, content), parent: null, position: 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,9 +6,26 @@ namespace Microsoft.AspNetCore.Razor.Language
|
|||
internal enum SyntaxKind : byte
|
||||
{
|
||||
#region Nodes
|
||||
// HTML
|
||||
HtmlText,
|
||||
HtmlDocument,
|
||||
HtmlDeclaration,
|
||||
|
||||
// CSharp
|
||||
CSharpBlock,
|
||||
CSharpStatement,
|
||||
CSharpStatementBody,
|
||||
CSharpExpression,
|
||||
CSharpExpressionBody,
|
||||
CSharpDirective,
|
||||
CSharpDirectiveBody,
|
||||
CSharpCodeBlock,
|
||||
CSharpCodeLiteral,
|
||||
CSharpMetaCode,
|
||||
CSharpTransition,
|
||||
|
||||
// Common
|
||||
RazorComment,
|
||||
#endregion
|
||||
|
||||
#region Tokens
|
||||
|
|
@ -89,7 +106,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
|||
Hash,
|
||||
|
||||
// Razor specific
|
||||
RazorComment,
|
||||
RazorCommentLiteral,
|
||||
RazorCommentStar,
|
||||
RazorCommentTransition,
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -10,11 +10,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
|||
{
|
||||
}
|
||||
|
||||
internal override SyntaxNode Accept(SyntaxVisitor visitor)
|
||||
public override TResult Accept<TResult>(SyntaxVisitor<TResult> visitor)
|
||||
{
|
||||
return visitor.Visit(this);
|
||||
}
|
||||
|
||||
public override void Accept(SyntaxVisitor visitor)
|
||||
{
|
||||
visitor.Visit(this);
|
||||
}
|
||||
|
||||
internal class WithTwoChildren : SyntaxList
|
||||
{
|
||||
private SyntaxNode _child0;
|
||||
|
|
|
|||
|
|
@ -80,7 +80,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
|||
|
||||
public bool ContainsAnnotations => Green.ContainsAnnotations;
|
||||
|
||||
internal abstract SyntaxNode Accept(SyntaxVisitor visitor);
|
||||
public abstract TResult Accept<TResult>(SyntaxVisitor<TResult> visitor);
|
||||
|
||||
public abstract void Accept(SyntaxVisitor visitor);
|
||||
|
||||
internal abstract SyntaxNode GetNodeSlot(int index);
|
||||
|
||||
|
|
@ -103,6 +105,24 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
|||
return result;
|
||||
}
|
||||
|
||||
// Special case of above function where slot = 0, does not need GetChildPosition
|
||||
internal SyntaxNode GetRedAtZero(ref SyntaxNode field)
|
||||
{
|
||||
var result = field;
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
var green = Green.GetSlot(0);
|
||||
if (green != null)
|
||||
{
|
||||
Interlocked.CompareExchange(ref field, green.CreateRed(this, Position), null);
|
||||
result = field;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
protected T GetRed<T>(ref T field, int slot) where T : SyntaxNode
|
||||
{
|
||||
var result = field;
|
||||
|
|
@ -120,6 +140,24 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
|||
return result;
|
||||
}
|
||||
|
||||
// special case of above function where slot = 0, does not need GetChildPosition
|
||||
protected T GetRedAtZero<T>(ref T field) where T : SyntaxNode
|
||||
{
|
||||
var result = field;
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
var green = Green.GetSlot(0);
|
||||
if (green != null)
|
||||
{
|
||||
Interlocked.CompareExchange(ref field, (T)green.CreateRed(this, Position), null);
|
||||
result = field;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
internal SyntaxNode GetRedElement(ref SyntaxNode element, int slot)
|
||||
{
|
||||
Debug.Assert(IsList);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
||||
{
|
||||
internal static class SyntaxNodeExtensions
|
||||
{
|
||||
public static TNode WithAnnotations<TNode>(this TNode node, params SyntaxAnnotation[] annotations) where TNode : SyntaxNode
|
||||
{
|
||||
return (TNode)node.Green.SetAnnotations(annotations).CreateRed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -69,9 +69,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
|||
throw new InvalidOperationException("Tokens can't have slots.");
|
||||
}
|
||||
|
||||
internal override SyntaxNode Accept(SyntaxVisitor visitor)
|
||||
public override TResult Accept<TResult>(SyntaxVisitor<TResult> visitor)
|
||||
{
|
||||
return visitor.VisitSyntaxToken(this);
|
||||
return visitor.VisitToken(this);
|
||||
}
|
||||
|
||||
public override void Accept(SyntaxVisitor visitor)
|
||||
{
|
||||
visitor.VisitToken(this);
|
||||
}
|
||||
|
||||
public SyntaxToken WithLeadingTrivia(SyntaxNode trivia)
|
||||
|
|
|
|||
|
|
@ -26,9 +26,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
|||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
internal override SyntaxNode Accept(SyntaxVisitor visitor)
|
||||
public override TResult Accept<TResult>(SyntaxVisitor<TResult> visitor)
|
||||
{
|
||||
return visitor.VisitSyntaxTrivia(this);
|
||||
return visitor.VisitTrivia(this);
|
||||
}
|
||||
|
||||
public override void Accept(SyntaxVisitor visitor)
|
||||
{
|
||||
visitor.VisitTrivia(this);
|
||||
}
|
||||
|
||||
public sealed override SyntaxTriviaList GetTrailingTrivia()
|
||||
|
|
|
|||
|
|
@ -3,41 +3,56 @@
|
|||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Syntax
|
||||
{
|
||||
internal abstract class SyntaxVisitor
|
||||
internal abstract partial class SyntaxVisitor<TResult>
|
||||
{
|
||||
public virtual SyntaxNode Visit(SyntaxNode node)
|
||||
public virtual TResult Visit(SyntaxNode node)
|
||||
{
|
||||
if (node != null)
|
||||
{
|
||||
return node.Accept(this);
|
||||
}
|
||||
|
||||
return null;
|
||||
return default(TResult);
|
||||
}
|
||||
|
||||
public virtual SyntaxNode VisitSyntaxNode(SyntaxNode node)
|
||||
public virtual TResult VisitToken(SyntaxToken token)
|
||||
{
|
||||
return node;
|
||||
return DefaultVisit(token);
|
||||
}
|
||||
|
||||
public virtual SyntaxNode VisitHtmlNode(HtmlNodeSyntax node)
|
||||
public virtual TResult VisitTrivia(SyntaxTrivia trivia)
|
||||
{
|
||||
return VisitSyntaxNode(node);
|
||||
return DefaultVisit(trivia);
|
||||
}
|
||||
|
||||
public virtual SyntaxNode VisitHtmlText(HtmlTextSyntax node)
|
||||
protected virtual TResult DefaultVisit(SyntaxNode node)
|
||||
{
|
||||
return VisitHtmlNode(node);
|
||||
return default(TResult);
|
||||
}
|
||||
}
|
||||
|
||||
internal abstract partial class SyntaxVisitor
|
||||
{
|
||||
public virtual void Visit(SyntaxNode node)
|
||||
{
|
||||
if (node != null)
|
||||
{
|
||||
node.Accept(this);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual SyntaxToken VisitSyntaxToken(SyntaxToken token)
|
||||
public virtual void VisitToken(SyntaxToken token)
|
||||
{
|
||||
return token;
|
||||
DefaultVisit(token);
|
||||
}
|
||||
|
||||
public virtual SyntaxTrivia VisitSyntaxTrivia(SyntaxTrivia trivia)
|
||||
public virtual void VisitTrivia(SyntaxTrivia trivia)
|
||||
{
|
||||
DefaultVisit(trivia);
|
||||
}
|
||||
|
||||
public virtual void DefaultVisit(SyntaxNode node)
|
||||
{
|
||||
return trivia;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
"@* Foo * Bar * Baz *",
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorComment, " Foo * Bar * Baz *"));
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentLiteral, " Foo * Bar * Baz *"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
"@* Foo * Bar * Baz *@",
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorComment, " Foo * Bar * Baz "),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentLiteral, " Foo * Bar * Baz "),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"));
|
||||
}
|
||||
|
|
@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
"@* Foo Bar Baz *@",
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorComment, " Foo Bar Baz "),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentLiteral, " Foo Bar Baz "),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
"@*included*@\r\n @something \"value\"\r\n @this is ignored",
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorComment, "included"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentLiteral, "included"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"),
|
||||
SyntaxFactory.Token(SyntaxKind.NewLine, "\r\n"),
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
SyntaxFactory.Token(SyntaxKind.Whitespace, " "),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorComment, "included"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentLiteral, "included"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"),
|
||||
SyntaxFactory.Token(SyntaxKind.Whitespace, " "),
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
"@* Foo * Bar * Baz *",
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorComment, " Foo * Bar * Baz *"));
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentLiteral, " Foo * Bar * Baz *"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -144,7 +144,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
"@* Foo * Bar * Baz *@",
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorComment, " Foo * Bar * Baz "),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentLiteral, " Foo * Bar * Baz "),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"));
|
||||
}
|
||||
|
|
@ -156,7 +156,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
"@* Foo Bar Baz *@",
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorComment, " Foo Bar Baz "),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentLiteral, " Foo Bar Baz "),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentStar, "*"),
|
||||
SyntaxFactory.Token(SyntaxKind.RazorCommentTransition, "@"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ Statement block - Gen<None> - 75 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (38:0,38) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Foo ] - SpanEditHandler;Accepts:Any - (39:0,39) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Foo ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Foo ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (44:0,44) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (45:0,45) - Tokens:1
|
||||
|
|
@ -44,7 +44,7 @@ Statement block - Gen<None> - 75 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (48:0,48) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Bar ] - SpanEditHandler;Accepts:Any - (49:0,49) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Bar ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Bar ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (54:0,54) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (55:0,55) - Tokens:1
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ Statement block - Gen<None> - 54 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Foo ] - SpanEditHandler;Accepts:Any - (24:0,24) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Foo ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Foo ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (29:0,29) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (30:0,30) - Tokens:1
|
||||
|
|
@ -34,7 +34,7 @@ Statement block - Gen<None> - 54 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (33:0,33) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Bar ] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Bar ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Bar ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (39:0,39) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ Statement block - Gen<None> - 78 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (44:0,44) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Foo ] - SpanEditHandler;Accepts:Any - (45:0,45) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Foo ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Foo ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (50:0,50) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (51:0,51) - Tokens:1
|
||||
|
|
@ -49,7 +49,7 @@ Statement block - Gen<None> - 78 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (54:0,54) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Bar ] - SpanEditHandler;Accepts:Any - (55:0,55) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Bar ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Bar ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (60:0,60) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (61:0,61) - Tokens:1
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ Statement block - Gen<None> - 54 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Foo ] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Foo ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Foo ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (26:0,26) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:1
|
||||
|
|
@ -33,7 +33,7 @@ Statement block - Gen<None> - 54 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (30:0,30) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Bar ] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Bar ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Bar ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (36:0,36) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ Statement block - Gen<None> - 62 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Foo ] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Foo ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Foo ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (26:0,26) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (27:0,27) - Tokens:1
|
||||
|
|
@ -33,7 +33,7 @@ Statement block - Gen<None> - 62 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (30:0,30) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Bar ] - SpanEditHandler;Accepts:Any - (31:0,31) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Bar ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Bar ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (36:0,36) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ Statement block - Gen<None> - 55 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Foo ] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Foo ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Foo ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:1
|
||||
|
|
@ -29,7 +29,7 @@ Statement block - Gen<None> - 55 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (25:0,25) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Bar ] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Bar ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Bar ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (32:0,32) - Tokens:1
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ Statement block - Gen<None> - 53 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (16:0,16) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Foo ] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Foo ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Foo ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (22:0,22) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:1
|
||||
|
|
@ -30,7 +30,7 @@ Statement block - Gen<None> - 53 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (26:0,26) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ Bar ] - SpanEditHandler;Accepts:Any - (27:0,27) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ Bar ];
|
||||
SyntaxKind.RazorCommentLiteral;[ Bar ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (32:0,32) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (33:0,33) - Tokens:1
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ Markup block - Gen<None> - 130 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ There are two directives beneath this ] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ There are two directives beneath this ];
|
||||
SyntaxKind.RazorCommentLiteral;[ There are two directives beneath this ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (41:0,41) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (42:0,42) - Tokens:1
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ Markup block - Gen<None> - 33 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (14:0,14) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ razor comment ] - SpanEditHandler;Accepts:Any - (15:0,15) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ razor comment ];
|
||||
SyntaxKind.RazorCommentLiteral;[ razor comment ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (30:0,30) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (31:0,31) - Tokens:1
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ Markup block - Gen<None> - 33 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (7:0,7) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ razor comment ] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ razor comment ];
|
||||
SyntaxKind.RazorCommentLiteral;[ razor comment ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:1
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ Markup block - Gen<None> - 45 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (8:2,1) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ content ] - SpanEditHandler;Accepts:Any - (9:2,2) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ content ];
|
||||
SyntaxKind.RazorCommentLiteral;[ content ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (18:2,11) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (19:2,12) - Tokens:1
|
||||
|
|
@ -26,7 +26,7 @@ Markup block - Gen<None> - 45 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (23:3,1) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [LFcontentLF] - SpanEditHandler;Accepts:Any - (24:3,2) - Tokens:1
|
||||
SyntaxKind.RazorComment;[LFcontentLF];
|
||||
SyntaxKind.RazorCommentLiteral;[LFcontentLF];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (35:5,0) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (36:5,1) - Tokens:1
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Markup block - Gen<None> - 42 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (6:1,1) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ hello ] - SpanEditHandler;Accepts:Any - (7:1,2) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ hello ];
|
||||
SyntaxKind.RazorCommentLiteral;[ hello ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (14:1,9) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (15:1,10) - Tokens:1
|
||||
|
|
@ -27,7 +27,7 @@ Markup block - Gen<None> - 42 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (26:1,21) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [ world ] - SpanEditHandler;Accepts:Any - (27:1,22) - Tokens:1
|
||||
SyntaxKind.RazorComment;[ world ];
|
||||
SyntaxKind.RazorCommentLiteral;[ world ];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (34:1,29) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (35:1,30) - Tokens:1
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ Markup block - Gen<None> - 26 - (0:0,0)
|
|||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Comment span - Gen<None> - [asdf] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1
|
||||
SyntaxKind.RazorComment;[asdf];
|
||||
SyntaxKind.RazorCommentLiteral;[asdf];
|
||||
MetaCode span - Gen<None> - [*] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1
|
||||
SyntaxKind.RazorCommentStar;[*];
|
||||
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1
|
||||
|
|
|
|||
Loading…
Reference in New Issue