From ae2307a7a7cf142decae6ead01cef445f30f4f31 Mon Sep 17 00:00:00 2001 From: nub31 Date: Wed, 13 Aug 2025 20:06:15 +0200 Subject: [PATCH] Clean unused stuff --- .../NubLang/Diagnostics/Diagnostic.cs | 1 - .../Parsing/Syntax/DefinitionSyntax.cs | 94 ++---------------- .../Parsing/Syntax/ExpressionSyntax.cs | 98 +++---------------- .../NubLang/Parsing/Syntax/StatementSyntax.cs | 79 ++------------- .../NubLang/Parsing/Syntax/SyntaxNode.cs | 37 +------ .../NubLang/Parsing/Syntax/TypeSyntax.cs | 64 ++---------- src/compiler/NubLang/Tokenization/Token.cs | 1 - .../NubLang/Tokenization/Tokenizer.cs | 1 - 8 files changed, 41 insertions(+), 334 deletions(-) diff --git a/src/compiler/NubLang/Diagnostics/Diagnostic.cs b/src/compiler/NubLang/Diagnostics/Diagnostic.cs index 4b2bfe4..b12ab54 100644 --- a/src/compiler/NubLang/Diagnostics/Diagnostic.cs +++ b/src/compiler/NubLang/Diagnostics/Diagnostic.cs @@ -292,7 +292,6 @@ public class Diagnostic case Symbol.ForwardSlash: case Symbol.Caret: case Symbol.Ampersand: - case Symbol.Arrow: { return ConsoleColors.Colorize(tokenText, ConsoleColors.Yellow); } diff --git a/src/compiler/NubLang/Parsing/Syntax/DefinitionSyntax.cs b/src/compiler/NubLang/Parsing/Syntax/DefinitionSyntax.cs index aaf6d1e..3674739 100644 --- a/src/compiler/NubLang/Parsing/Syntax/DefinitionSyntax.cs +++ b/src/compiler/NubLang/Parsing/Syntax/DefinitionSyntax.cs @@ -4,96 +4,20 @@ namespace NubLang.Parsing.Syntax; public abstract record DefinitionSyntax(IEnumerable Tokens) : SyntaxNode(Tokens); -public record FuncParameterSyntax(IEnumerable Tokens, string Name, TypeSyntax Type) : SyntaxNode(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Type; - } -} +public record FuncParameterSyntax(IEnumerable Tokens, string Name, TypeSyntax Type) : SyntaxNode(Tokens); -public record FuncSignatureSyntax(IEnumerable Tokens, IReadOnlyList Parameters, TypeSyntax ReturnType) : SyntaxNode(Tokens) -{ - public override IEnumerable GetChildren() - { - foreach (var parameter in Parameters) - { - yield return parameter; - } +public record FuncSignatureSyntax(IEnumerable Tokens, IReadOnlyList Parameters, TypeSyntax ReturnType) : SyntaxNode(Tokens); - yield return ReturnType; - } -} +public record LocalFuncSyntax(IEnumerable Tokens, string Name, FuncSignatureSyntax Signature, BlockSyntax Body) : DefinitionSyntax(Tokens); -public record LocalFuncSyntax(IEnumerable Tokens, string Name, FuncSignatureSyntax Signature, BlockSyntax Body) : DefinitionSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Signature; - yield return Body; - } -} +public record ExternFuncSyntax(IEnumerable Tokens, string Name, string CallName, FuncSignatureSyntax Signature) : DefinitionSyntax(Tokens); -public record ExternFuncSyntax(IEnumerable Tokens, string Name, string CallName, FuncSignatureSyntax Signature) : DefinitionSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Signature; - } -} +public record StructFieldSyntax(IEnumerable Tokens, int Index, string Name, TypeSyntax Type, Optional Value) : SyntaxNode(Tokens); -public record StructFieldSyntax(IEnumerable Tokens, int Index, string Name, TypeSyntax Type, Optional Value) : SyntaxNode(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Type; - if (Value.HasValue) - { - yield return Value.Value; - } - } -} +public record StructFuncSyntax(IEnumerable Tokens, string Name, FuncSignatureSyntax Signature, BlockSyntax Body) : SyntaxNode(Tokens); -public record StructFuncSyntax(IEnumerable Tokens, string Name, FuncSignatureSyntax Signature, BlockSyntax Body) : SyntaxNode(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Signature; - yield return Body; - } -} +public record StructSyntax(IEnumerable Tokens, string Name, IReadOnlyList Fields, IReadOnlyList Functions, IReadOnlyList InterfaceImplementations) : DefinitionSyntax(Tokens); -public record StructSyntax(IEnumerable Tokens, string Name, IReadOnlyList Fields, IReadOnlyList Functions, IReadOnlyList InterfaceImplementations) : DefinitionSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - foreach (var field in Fields) - { - yield return field; - } +public record InterfaceFuncSyntax(IEnumerable Tokens, string Name, FuncSignatureSyntax Signature) : SyntaxNode(Tokens); - foreach (var func in Functions) - { - yield return func; - } - } -} - -public record InterfaceFuncSyntax(IEnumerable Tokens, string Name, FuncSignatureSyntax Signature) : SyntaxNode(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Signature; - } -} - -public record InterfaceSyntax(IEnumerable Tokens, string Name, IReadOnlyList Functions) : DefinitionSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - foreach (var func in Functions) - { - yield return func; - } - } -} \ No newline at end of file +public record InterfaceSyntax(IEnumerable Tokens, string Name, IReadOnlyList Functions) : DefinitionSyntax(Tokens); \ No newline at end of file diff --git a/src/compiler/NubLang/Parsing/Syntax/ExpressionSyntax.cs b/src/compiler/NubLang/Parsing/Syntax/ExpressionSyntax.cs index 9c16e93..2bec916 100644 --- a/src/compiler/NubLang/Parsing/Syntax/ExpressionSyntax.cs +++ b/src/compiler/NubLang/Parsing/Syntax/ExpressionSyntax.cs @@ -24,100 +24,24 @@ public enum BinaryOperatorSyntax public abstract record ExpressionSyntax(IEnumerable Tokens) : SyntaxNode(Tokens); -public record BinaryExpressionSyntax(IEnumerable Tokens, ExpressionSyntax Left, BinaryOperatorSyntax OperatorSyntax, ExpressionSyntax Right) : ExpressionSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Left; - yield return Right; - } -} +public record BinaryExpressionSyntax(IEnumerable Tokens, ExpressionSyntax Left, BinaryOperatorSyntax OperatorSyntax, ExpressionSyntax Right) : ExpressionSyntax(Tokens); -public record UnaryExpressionSyntax(IEnumerable Tokens, UnaryOperatorSyntax OperatorSyntax, ExpressionSyntax Operand) : ExpressionSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Operand; - } -} +public record UnaryExpressionSyntax(IEnumerable Tokens, UnaryOperatorSyntax OperatorSyntax, ExpressionSyntax Operand) : ExpressionSyntax(Tokens); -public record FuncCallSyntax(IEnumerable Tokens, ExpressionSyntax Expression, IReadOnlyList Parameters) : ExpressionSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Expression; - foreach (var parameter in Parameters) - { - yield return parameter; - } - } -} +public record FuncCallSyntax(IEnumerable Tokens, ExpressionSyntax Expression, IReadOnlyList Parameters) : ExpressionSyntax(Tokens); -public record IdentifierSyntax(IEnumerable Tokens, string Name) : ExpressionSyntax(Tokens) -{ - public override IEnumerable GetChildren() => []; -} +public record IdentifierSyntax(IEnumerable Tokens, string Name) : ExpressionSyntax(Tokens); -public record ArrayInitializerSyntax(IEnumerable Tokens, ExpressionSyntax Capacity, TypeSyntax ElementType) : ExpressionSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Capacity; - yield return ElementType; - } -} +public record ArrayInitializerSyntax(IEnumerable Tokens, ExpressionSyntax Capacity, TypeSyntax ElementType) : ExpressionSyntax(Tokens); -public record ArrayIndexAccessSyntax(IEnumerable Tokens, ExpressionSyntax Target, ExpressionSyntax Index) : ExpressionSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Target; - yield return Index; - } -} +public record ArrayIndexAccessSyntax(IEnumerable Tokens, ExpressionSyntax Target, ExpressionSyntax Index) : ExpressionSyntax(Tokens); -public record ArrowFuncParameterSyntax(IEnumerable Tokens, string Name) : ExpressionSyntax(Tokens) -{ - public override IEnumerable GetChildren() => []; -} +public record AddressOfSyntax(IEnumerable Tokens, ExpressionSyntax Expression) : ExpressionSyntax(Tokens); -public record AddressOfSyntax(IEnumerable Tokens, ExpressionSyntax Expression) : ExpressionSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Expression; - } -} +public record LiteralSyntax(IEnumerable Tokens, string Value, LiteralKind Kind) : ExpressionSyntax(Tokens); -public record LiteralSyntax(IEnumerable Tokens, string Value, LiteralKind Kind) : ExpressionSyntax(Tokens) -{ - public override IEnumerable GetChildren() => []; -} +public record MemberAccessSyntax(IEnumerable Tokens, ExpressionSyntax Target, string Member) : ExpressionSyntax(Tokens); -public record MemberAccessSyntax(IEnumerable Tokens, ExpressionSyntax Target, string Member) : ExpressionSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Target; - } -} +public record StructInitializerSyntax(IEnumerable Tokens, TypeSyntax StructType, Dictionary Initializers) : ExpressionSyntax(Tokens); -public record StructInitializerSyntax(IEnumerable Tokens, TypeSyntax StructType, Dictionary Initializers) : ExpressionSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return StructType; - foreach (var initializer in Initializers) - { - yield return initializer.Value; - } - } -} - -public record DereferenceSyntax(IEnumerable Tokens, ExpressionSyntax Expression) : ExpressionSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Expression; - } -} \ No newline at end of file +public record DereferenceSyntax(IEnumerable Tokens, ExpressionSyntax Expression) : ExpressionSyntax(Tokens); \ No newline at end of file diff --git a/src/compiler/NubLang/Parsing/Syntax/StatementSyntax.cs b/src/compiler/NubLang/Parsing/Syntax/StatementSyntax.cs index 4601ab5..acf1d8c 100644 --- a/src/compiler/NubLang/Parsing/Syntax/StatementSyntax.cs +++ b/src/compiler/NubLang/Parsing/Syntax/StatementSyntax.cs @@ -4,81 +4,18 @@ namespace NubLang.Parsing.Syntax; public abstract record StatementSyntax(IEnumerable Tokens) : SyntaxNode(Tokens); -public record StatementExpressionSyntax(IEnumerable Tokens, ExpressionSyntax Expression) : StatementSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Expression; - } -} +public record StatementExpressionSyntax(IEnumerable Tokens, ExpressionSyntax Expression) : StatementSyntax(Tokens); -public record ReturnSyntax(IEnumerable Tokens, Optional Value) : StatementSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - if (Value.HasValue) - { - yield return Value.Value; - } - } -} +public record ReturnSyntax(IEnumerable Tokens, Optional Value) : StatementSyntax(Tokens); -public record AssignmentSyntax(IEnumerable Tokens, ExpressionSyntax Target, ExpressionSyntax Value) : StatementSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Target; - yield return Value; - } -} +public record AssignmentSyntax(IEnumerable Tokens, ExpressionSyntax Target, ExpressionSyntax Value) : StatementSyntax(Tokens); -public record IfSyntax(IEnumerable Tokens, ExpressionSyntax Condition, BlockSyntax Body, Optional> Else) : StatementSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return Condition; - yield return Body; - if (Else.HasValue) - { - if (Else.Value.IsCase1(out var elseIf)) - { - yield return elseIf; - } - else if (Else.Value.IsCase2(out var @else)) - { - yield return @else; - } - } - } -} +public record IfSyntax(IEnumerable Tokens, ExpressionSyntax Condition, BlockSyntax Body, Optional> Else) : StatementSyntax(Tokens); -public record VariableDeclarationSyntax(IEnumerable Tokens, string Name, Optional ExplicitType, Optional Assignment) : StatementSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - if (ExplicitType.HasValue) - { - yield return ExplicitType.Value; - } +public record VariableDeclarationSyntax(IEnumerable Tokens, string Name, Optional ExplicitType, Optional Assignment) : StatementSyntax(Tokens); - if (Assignment.HasValue) - { - yield return Assignment.Value; - } - } -} +public record ContinueSyntax(IEnumerable Tokens) : StatementSyntax(Tokens); -public record ContinueSyntax(IEnumerable Tokens) : StatementSyntax(Tokens) -{ - public override IEnumerable GetChildren() => []; -} +public record BreakSyntax(IEnumerable Tokens) : StatementSyntax(Tokens); -public record BreakSyntax(IEnumerable Tokens) : StatementSyntax(Tokens) -{ - public override IEnumerable GetChildren() => []; -} - -public record WhileSyntax(IEnumerable Tokens, ExpressionSyntax Condition, BlockSyntax Body) : StatementSyntax(Tokens) -{ - public override IEnumerable GetChildren() => []; -} \ No newline at end of file +public record WhileSyntax(IEnumerable Tokens, ExpressionSyntax Condition, BlockSyntax Body) : StatementSyntax(Tokens); \ No newline at end of file diff --git a/src/compiler/NubLang/Parsing/Syntax/SyntaxNode.cs b/src/compiler/NubLang/Parsing/Syntax/SyntaxNode.cs index 37f9ac0..4fb6807 100644 --- a/src/compiler/NubLang/Parsing/Syntax/SyntaxNode.cs +++ b/src/compiler/NubLang/Parsing/Syntax/SyntaxNode.cs @@ -2,39 +2,8 @@ using NubLang.Tokenization; namespace NubLang.Parsing.Syntax; -public abstract record SyntaxNode(IEnumerable Tokens) -{ - public abstract IEnumerable GetChildren(); +public abstract record SyntaxNode(IEnumerable Tokens); - public IEnumerable GetDescendants() - { - yield return this; +public record SyntaxTree(IEnumerable Tokens, IReadOnlyList Definitions) : SyntaxNode(Tokens); - foreach (var child in GetChildren()) - { - foreach (var desc in child.GetDescendants()) - { - yield return desc; - } - } - } -} - -public record SyntaxTree(IEnumerable Tokens, IReadOnlyList Definitions) : SyntaxNode(Tokens) -{ - public override IEnumerable GetChildren() - { - foreach (var definition in Definitions) - { - yield return definition; - } - } -} - -public record BlockSyntax(IEnumerable Tokens, IReadOnlyList Statements) : SyntaxNode(Tokens) -{ - public override IEnumerable GetChildren() - { - return Statements; - } -} \ No newline at end of file +public record BlockSyntax(IEnumerable Tokens, IReadOnlyList Statements) : SyntaxNode(Tokens); \ No newline at end of file diff --git a/src/compiler/NubLang/Parsing/Syntax/TypeSyntax.cs b/src/compiler/NubLang/Parsing/Syntax/TypeSyntax.cs index 3613fc9..a29704d 100644 --- a/src/compiler/NubLang/Parsing/Syntax/TypeSyntax.cs +++ b/src/compiler/NubLang/Parsing/Syntax/TypeSyntax.cs @@ -4,66 +4,22 @@ namespace NubLang.Parsing.Syntax; public abstract record TypeSyntax(IEnumerable Tokens) : SyntaxNode(Tokens); -public record FuncTypeSyntax(IEnumerable Tokens, IReadOnlyList Parameters, TypeSyntax ReturnType) : TypeSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - foreach (var parameter in Parameters) - { - yield return parameter; - } +public record FuncTypeSyntax(IEnumerable Tokens, IReadOnlyList Parameters, TypeSyntax ReturnType) : TypeSyntax(Tokens); - yield return ReturnType; - } -} +public record PointerTypeSyntax(IEnumerable Tokens, TypeSyntax BaseType) : TypeSyntax(Tokens); -public record PointerTypeSyntax(IEnumerable Tokens, TypeSyntax BaseType) : TypeSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return BaseType; - } -} +public record VoidTypeSyntax(IEnumerable Tokens) : TypeSyntax(Tokens); -public record VoidTypeSyntax(IEnumerable Tokens) : TypeSyntax(Tokens) -{ - public override IEnumerable GetChildren() => []; -} +public record IntTypeSyntax(IEnumerable Tokens, bool Signed, int Width) : TypeSyntax(Tokens); -public record IntTypeSyntax(IEnumerable Tokens, bool Signed, int Width) : TypeSyntax(Tokens) -{ - public override IEnumerable GetChildren() => []; -} +public record FloatTypeSyntax(IEnumerable Tokens, int Width) : TypeSyntax(Tokens); -public record FloatTypeSyntax(IEnumerable Tokens, int Width) : TypeSyntax(Tokens) -{ - public override IEnumerable GetChildren() => []; -} +public record BoolTypeSyntax(IEnumerable Tokens) : TypeSyntax(Tokens); -public record BoolTypeSyntax(IEnumerable Tokens) : TypeSyntax(Tokens) -{ - public override IEnumerable GetChildren() => []; -} +public record StringTypeSyntax(IEnumerable Tokens) : TypeSyntax(Tokens); -public record StringTypeSyntax(IEnumerable Tokens) : TypeSyntax(Tokens) -{ - public override IEnumerable GetChildren() => []; -} +public record CStringTypeSyntax(IEnumerable Tokens) : TypeSyntax(Tokens); -public record CStringTypeSyntax(IEnumerable Tokens) : TypeSyntax(Tokens) -{ - public override IEnumerable GetChildren() => []; -} +public record ArrayTypeSyntax(IEnumerable Tokens, TypeSyntax BaseType) : TypeSyntax(Tokens); -public record ArrayTypeSyntax(IEnumerable Tokens, TypeSyntax BaseType) : TypeSyntax(Tokens) -{ - public override IEnumerable GetChildren() - { - yield return BaseType; - } -} - -public record CustomTypeSyntax(IEnumerable Tokens, string Name) : TypeSyntax(Tokens) -{ - public override IEnumerable GetChildren() => []; -} \ No newline at end of file +public record CustomTypeSyntax(IEnumerable Tokens, string Name) : TypeSyntax(Tokens); \ No newline at end of file diff --git a/src/compiler/NubLang/Tokenization/Token.cs b/src/compiler/NubLang/Tokenization/Token.cs index 4c473a3..12276c9 100644 --- a/src/compiler/NubLang/Tokenization/Token.cs +++ b/src/compiler/NubLang/Tokenization/Token.cs @@ -71,5 +71,4 @@ public enum Symbol For, Extern, Semi, - Arrow, } \ No newline at end of file diff --git a/src/compiler/NubLang/Tokenization/Tokenizer.cs b/src/compiler/NubLang/Tokenization/Tokenizer.cs index f42289f..b8d37c0 100644 --- a/src/compiler/NubLang/Tokenization/Tokenizer.cs +++ b/src/compiler/NubLang/Tokenization/Tokenizer.cs @@ -29,7 +29,6 @@ public sealed class Tokenizer [['!', '=']] = Symbol.NotEqual, [['<', '=']] = Symbol.LessThanOrEqual, [['>', '=']] = Symbol.GreaterThanOrEqual, - [['=', '>']] = Symbol.Arrow, [[':']] = Symbol.Colon, [['(']] = Symbol.OpenParen, [[')']] = Symbol.CloseParen,