using NubLang.Common; using NubLang.Syntax.Tokenization; namespace NubLang.Syntax.Binding.Node; public record BoundStatement(IEnumerable Tokens) : BoundNode(Tokens); public record BoundStatementExpression(IEnumerable Tokens, BoundExpression Expression) : BoundStatement(Tokens); public record BoundReturn(IEnumerable Tokens, Optional Value) : BoundStatement(Tokens); public record BoundAssignment(IEnumerable Tokens, BoundExpression Target, BoundExpression Value) : BoundStatement(Tokens); public record BoundIf(IEnumerable Tokens, BoundExpression Condition, BoundBlock Body, Optional> Else) : BoundStatement(Tokens); public record BoundVariableDeclaration(IEnumerable Tokens, string Name, Optional Assignment, NubType Type) : BoundStatement(Tokens); public record BoundContinue(IEnumerable Tokens) : BoundStatement(Tokens); public record BoundBreak(IEnumerable Tokens) : BoundStatement(Tokens); public record BoundWhile(IEnumerable Tokens, BoundExpression Condition, BoundBlock Body) : BoundStatement(Tokens);