/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend/Ast/Nodes/ProgramNode.cs
40 строк
1 KB
Ivan Kozhin
Improve QueryAstVisitor, implement Declare visit
28 фев 2024, 07:55
28 фев 2024, 07:55
3571f2e
Код
Авторство
О чём код?
namespace QueryCat.Backend.Ast.Nodes; /// <summary> /// Root node, program entry point. Program consist of the list of /// statements. /// </summary> internal sealed class ProgramNode : AstNode { public List<StatementNode> Statements { get; } = new(); /// <inheritdoc /> public override string Code => "program"; public ProgramNode(IList<StatementNode> statements) { Statements.AddRange(statements); } public ProgramNode(params StatementNode[] statements) : this(statements.ToList()) { } public ProgramNode(ProgramNode node) : this( node.Statements.Select(s => (StatementNode)s.Clone()).ToList()) { node.CopyTo(this); } /// <inheritdoc /> public override void Accept(AstVisitor visitor) => visitor.Visit(this); /// <inheritdoc /> public override IEnumerable<IAstNode> GetChildren() => Statements; /// <inheritdoc /> public override object Clone() => new ProgramNode(this); /// <inheritdoc /> public override string ToString() => $"program: {Statements.Count} statement(-s)"; }