/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend/Ast/Nodes/BlockExpressionNode.cs
39 строк
1 KB
Ivan Kozhin
Initial implementation of IF command
20 май 2024, 09:13
20 май 2024, 09:13
69f5572
Код
Авторство
О чём код?
namespace QueryCat.Backend.Ast.Nodes; internal sealed class BlockExpressionNode : ExpressionNode { public List<StatementNode> Statements { get; } = new(); /// <inheritdoc /> public override string Code => "block"; public BlockExpressionNode(IList<StatementNode> statements) { if (statements.Count < 1) { throw new ArgumentOutOfRangeException(nameof(statements), Resources.Errors.NoStatements); } Statements.AddRange(statements); } public BlockExpressionNode(BlockExpressionNode node) : this(node.Statements.Select(s => (StatementNode)s.Clone()).ToList()) { node.CopyTo(this); } /// <inheritdoc /> public override IEnumerable<IAstNode> GetChildren() { foreach (var statementNode in Statements) { yield return statementNode; } } /// <inheritdoc /> public override object Clone() => new BlockExpressionNode(this); /// <inheritdoc /> public override void Accept(AstVisitor visitor) => visitor.Visit(this); }