Upsilon/Upsilon/Parser/StatementSyntax/FunctionAssignmentStatementSyntax.cs

32 lines
1.2 KiB
C#

using System.Collections.Generic;
using Upsilon.Text;
namespace Upsilon.Parser
{
public class FunctionAssignmentStatementSyntax : StatementSyntax
{
public FunctionAssignmentStatementSyntax(SyntaxToken localToken, IdentifierToken identifier, FunctionExpressionSyntax functionExpression)
{
LocalToken = localToken;
Identifier = identifier;
FunctionExpression = functionExpression;
var start = Identifier.Span.Start;
if (localToken != null) start = localToken.Span.Start;
Span = new TextSpan(start, FunctionExpression.Span.End - start);
}
public SyntaxToken LocalToken { get; }
public IdentifierToken Identifier { get; }
public FunctionExpressionSyntax FunctionExpression { get; }
public string[] CommentData { get; set; }
public override SyntaxKind Kind => SyntaxKind.FunctionAssignmentStatement;
public override IEnumerable<SyntaxNode> ChildNodes()
{
if (LocalToken != null)
yield return LocalToken;
yield return Identifier;
yield return FunctionExpression;
}
}
}