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