22 lines
1.2 KiB
C#
22 lines
1.2 KiB
C#
using NubLang.Common;
|
|
using NubLang.Syntax.Tokenization;
|
|
|
|
namespace NubLang.Syntax.Parsing.Node;
|
|
|
|
public record StatementSyntax(IEnumerable<Token> Tokens) : SyntaxNode(Tokens);
|
|
|
|
public record StatementExpressionSyntax(IEnumerable<Token> Tokens, ExpressionSyntax Expression) : StatementSyntax(Tokens);
|
|
|
|
public record ReturnSyntax(IEnumerable<Token> Tokens, Optional<ExpressionSyntax> Value) : StatementSyntax(Tokens);
|
|
|
|
public record AssignmentSyntax(IEnumerable<Token> Tokens, ExpressionSyntax Target, ExpressionSyntax Value) : StatementSyntax(Tokens);
|
|
|
|
public record IfSyntax(IEnumerable<Token> Tokens, ExpressionSyntax Condition, BlockSyntax Body, Optional<Variant<IfSyntax, BlockSyntax>> Else) : StatementSyntax(Tokens);
|
|
|
|
public record VariableDeclarationSyntax(IEnumerable<Token> Tokens, string Name, Optional<NubType> ExplicitType, Optional<ExpressionSyntax> Assignment) : StatementSyntax(Tokens);
|
|
|
|
public record ContinueSyntax(IEnumerable<Token> Tokens) : StatementSyntax(Tokens);
|
|
|
|
public record BreakSyntax(IEnumerable<Token> Tokens) : StatementSyntax(Tokens);
|
|
|
|
public record WhileSyntax(IEnumerable<Token> Tokens, ExpressionSyntax Condition, BlockSyntax Body) : StatementSyntax(Tokens); |