/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend/Ast/Nodes/Function/FunctionCallArgumentNode.cs
53 строки
1 KB
Ivan Kozhin
Make most of AST classes internal
04 дек 2023, 19:35
04 дек 2023, 19:35
7aa397b
Код
Авторство
О чём код?
namespace QueryCat.Backend.Ast.Nodes.Function; /// <summary> /// Function call argument node. /// </summary> internal sealed class FunctionCallArgumentNode : AstNode { public string? Key { get; } public ExpressionNode ExpressionValueNode { get; } public bool IsPositional => string.IsNullOrEmpty(Key); /// <inheritdoc /> public override string Code => "func_arg"; public FunctionCallArgumentNode(string? key, ExpressionNode expressionValueNode) { if (!string.IsNullOrEmpty(key)) { Key = key.ToUpper(); } ExpressionValueNode = expressionValueNode; } public FunctionCallArgumentNode(ExpressionNode expressionValueNode) { ExpressionValueNode = expressionValueNode; } public FunctionCallArgumentNode(FunctionCallArgumentNode node) : this(node.Key, (ExpressionNode)node.ExpressionValueNode.Clone()) { node.CopyTo(this); } /// <inheritdoc /> public override IEnumerable<IAstNode> GetChildren() { yield return ExpressionValueNode; } /// <inheritdoc /> public override object Clone() => new FunctionCallArgumentNode(this); /// <inheritdoc /> public override void Accept(AstVisitor visitor) => visitor.Visit(this); /// <inheritdoc /> public override string ToString() => !string.IsNullOrEmpty(Key) ? $"{Key}=>{ExpressionValueNode}" : $"{ExpressionValueNode}"; }