Upsilon/Upsilon/Parser/ExpressionSyntax/FunctionCallExpressionSyntax.cs

36 lines
1.3 KiB
C#

using System.Collections.Generic;
using System.Collections.Immutable;
using Upsilon.Text;
namespace Upsilon.Parser
{
public class FunctionCallExpressionSyntax : ExpressionSyntax
{
public ExpressionSyntax Identifier { get; }
public SyntaxToken OpenParenthesis { get; }
public ImmutableArray<ExpressionSyntax> Parameters { get; }
public SyntaxToken CloseParenthesis { get; }
public FunctionCallExpressionSyntax(ExpressionSyntax identifier, SyntaxToken openParenthesis,
ImmutableArray<ExpressionSyntax> parameters, SyntaxToken closeParenthesis)
{
Identifier = identifier;
OpenParenthesis = openParenthesis;
Parameters = parameters;
CloseParenthesis = closeParenthesis;
Span = TextSpan.Between(Identifier.Span, CloseParenthesis.Span);
}
public override SyntaxKind Kind => SyntaxKind.FunctionCallExpression;
public override IEnumerable<SyntaxNode> ChildNodes()
{
yield return Identifier;
yield return OpenParenthesis;
foreach (var expressionSyntax in Parameters)
{
yield return expressionSyntax;
}
yield return CloseParenthesis;
}
}
}