namespace Inspectron.Epson.Templates.Language.Nodes; public record ConditionBranch( string Condition, List Body, SourcePosition Position); public record IfNode( ConditionBranch IfBranch, IReadOnlyList ElseIfBranches, List? ElseBranch, SourcePosition Position) : ITemplateNode { public IReadOnlyList Children { get { var children = new List(); children.AddRange(IfBranch.Body); foreach (var branch in ElseIfBranches) { children.AddRange(branch.Body); } if (ElseBranch != null) { children.AddRange(ElseBranch); } return children; } } }