Upsilon/Upsilon/Parser/StatementSyntax/BlockStatementSyntax.cs

26 lines
815 B
C#

using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using Upsilon.Text;
namespace Upsilon.Parser
{
public sealed class BlockStatementSyntax : StatementSyntax
{
public BlockStatementSyntax(ImmutableArray<StatementSyntax> statements)
{
Statements = statements;
var first = statements.FirstOrDefault();
var last = statements.LastOrDefault();
if (first != null && last != null)
Span = TextSpan.Between(first.Span, last.Span);
}
public ImmutableArray<StatementSyntax> Statements { get; }
public override SyntaxKind Kind => SyntaxKind.BlockStatement;
public override IEnumerable<SyntaxNode> ChildNodes()
{
return Statements;
}
}
}