diff --git a/src/cli/cli.csproj b/src/CLI/CLI.csproj similarity index 79% rename from src/cli/cli.csproj rename to src/CLI/CLI.csproj index 657ebe8..8fd0e47 100644 --- a/src/cli/cli.csproj +++ b/src/CLI/CLI.csproj @@ -7,11 +7,12 @@ enable enable true + cli - - + + diff --git a/src/cli/Program.cs b/src/CLI/Program.cs similarity index 97% rename from src/cli/Program.cs rename to src/CLI/Program.cs index f72995f..205ae22 100644 --- a/src/cli/Program.cs +++ b/src/CLI/Program.cs @@ -1,11 +1,10 @@ using System.Diagnostics; using System.Reflection; -using Nub.Lang.Common; -using Nub.Lang.Generation.QBE; -using Nub.Lang.Syntax; -using Nub.Lang.Syntax.Parsing; -using Nub.Lang.Syntax.Tokenization; -using Nub.Lang.Syntax.Typing; +using generation.QBE; +using syntax; +using syntax.Parsing; +using syntax.Tokenization; +using syntax.Typing; const string BIN_DIR = "bin"; const string BIN_INT_DIR = "bin-int"; diff --git a/src/cli/Runtime/entry.s b/src/CLI/Runtime/entry.s similarity index 100% rename from src/cli/Runtime/entry.s rename to src/CLI/Runtime/entry.s diff --git a/src/cli/Runtime/nub_memcpy.s b/src/CLI/Runtime/nub_memcpy.s similarity index 100% rename from src/cli/Runtime/nub_memcpy.s rename to src/CLI/Runtime/nub_memcpy.s diff --git a/src/cli/Runtime/nub_memset.s b/src/CLI/Runtime/nub_memset.s similarity index 100% rename from src/cli/Runtime/nub_memset.s rename to src/CLI/Runtime/nub_memset.s diff --git a/src/cli/Runtime/nub_panic.s b/src/CLI/Runtime/nub_panic.s similarity index 100% rename from src/cli/Runtime/nub_panic.s rename to src/CLI/Runtime/nub_panic.s diff --git a/src/cli/Runtime/nub_strcmp.s b/src/CLI/Runtime/nub_strcmp.s similarity index 100% rename from src/cli/Runtime/nub_strcmp.s rename to src/CLI/Runtime/nub_strcmp.s diff --git a/src/common/common.csproj b/src/Common/Common.csproj similarity index 83% rename from src/common/common.csproj rename to src/Common/Common.csproj index 17b910f..614e531 100644 --- a/src/common/common.csproj +++ b/src/Common/Common.csproj @@ -4,6 +4,7 @@ net9.0 enable enable + common diff --git a/src/common/Optional.cs b/src/Common/Optional.cs similarity index 98% rename from src/common/Optional.cs rename to src/Common/Optional.cs index 7e0a782..8a93549 100644 --- a/src/common/Optional.cs +++ b/src/Common/Optional.cs @@ -1,6 +1,6 @@ using System.Diagnostics.CodeAnalysis; -namespace Nub.Lang.Common; +namespace common; public readonly struct Optional { diff --git a/src/common/Variant.cs b/src/Common/Variant.cs similarity index 97% rename from src/common/Variant.cs rename to src/Common/Variant.cs index d947ff2..4321cf4 100644 --- a/src/common/Variant.cs +++ b/src/Common/Variant.cs @@ -1,4 +1,4 @@ -namespace Nub.Lang.Common; +namespace common; public readonly struct Variant where T1 : notnull where T2 : notnull { diff --git a/src/compiler.sln b/src/Compiler.sln similarity index 77% rename from src/compiler.sln rename to src/Compiler.sln index dc64a45..702f726 100644 --- a/src/compiler.sln +++ b/src/Compiler.sln @@ -1,12 +1,12 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "syntax", "syntax\syntax.csproj", "{5047E21F-590D-4CB3-AFF3-064316485009}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Syntax", "Syntax\Syntax.csproj", "{5047E21F-590D-4CB3-AFF3-064316485009}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cli", "cli\cli.csproj", "{A22F17ED-FA17-45AB-92BA-CD02C28B3524}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CLI", "CLI\CLI.csproj", "{A22F17ED-FA17-45AB-92BA-CD02C28B3524}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "generation", "generation\generation.csproj", "{F903F1B9-69A6-4522-B483-81A4B072C8B1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Generation", "Generation\Generation.csproj", "{F903F1B9-69A6-4522-B483-81A4B072C8B1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "common", "common\common.csproj", "{91ECE034-32D4-48E6-A905-5F95DB95A3D4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Common\Common.csproj", "{91ECE034-32D4-48E6-A905-5F95DB95A3D4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/generation/generation.csproj b/src/Generation/Generation.csproj similarity index 59% rename from src/generation/generation.csproj rename to src/Generation/Generation.csproj index 69ce77d..aad8856 100644 --- a/src/generation/generation.csproj +++ b/src/Generation/Generation.csproj @@ -4,11 +4,12 @@ net9.0 enable enable + generation - - + + diff --git a/src/generation/QBE/QBEGenerator.cs b/src/Generation/QBE/QBEGenerator.cs similarity index 99% rename from src/generation/QBE/QBEGenerator.cs rename to src/Generation/QBE/QBEGenerator.cs index 9af5317..fa42255 100644 --- a/src/generation/QBE/QBEGenerator.cs +++ b/src/Generation/QBE/QBEGenerator.cs @@ -1,15 +1,15 @@ using System.Diagnostics; using System.Globalization; using System.Text; -using Nub.Lang.Syntax; -using Nub.Lang.Syntax.Parsing; -using Nub.Lang.Syntax.Parsing.Definitions; -using Nub.Lang.Syntax.Parsing.Expressions; -using Nub.Lang.Syntax.Parsing.Statements; -using Nub.Lang.Syntax.Tokenization; -using Nub.Lang.Syntax.Typing; +using syntax; +using syntax.Parsing; +using syntax.Parsing.Definitions; +using syntax.Parsing.Expressions; +using syntax.Parsing.Statements; +using syntax.Tokenization; +using syntax.Typing; -namespace Nub.Lang.Generation.QBE; +namespace generation.QBE; public static class QBEGenerator { diff --git a/src/syntax/DefinitionTable.cs b/src/Syntax/DefinitionTable.cs similarity index 90% rename from src/syntax/DefinitionTable.cs rename to src/Syntax/DefinitionTable.cs index 830c85e..7a107c4 100644 --- a/src/syntax/DefinitionTable.cs +++ b/src/Syntax/DefinitionTable.cs @@ -1,8 +1,8 @@ -using Nub.Lang.Common; -using Nub.Lang.Syntax.Parsing; -using Nub.Lang.Syntax.Parsing.Definitions; +using common; +using syntax.Parsing; +using syntax.Parsing.Definitions; -namespace Nub.Lang.Syntax; +namespace syntax; public class DefinitionTable { diff --git a/src/syntax/Diagnostics/ConsoleColors.cs b/src/Syntax/Diagnostics/ConsoleColors.cs similarity index 98% rename from src/syntax/Diagnostics/ConsoleColors.cs rename to src/Syntax/Diagnostics/ConsoleColors.cs index a2f5128..10256c9 100644 --- a/src/syntax/Diagnostics/ConsoleColors.cs +++ b/src/Syntax/Diagnostics/ConsoleColors.cs @@ -1,7 +1,7 @@ using System.Text; -using Nub.Lang.Syntax.Tokenization; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Diagnostics; +namespace syntax.Diagnostics; public static class ConsoleColors { diff --git a/src/syntax/Diagnostics/Diagnostic.cs b/src/Syntax/Diagnostics/Diagnostic.cs similarity index 98% rename from src/syntax/Diagnostics/Diagnostic.cs rename to src/Syntax/Diagnostics/Diagnostic.cs index cb2781d..70593aa 100644 --- a/src/syntax/Diagnostics/Diagnostic.cs +++ b/src/Syntax/Diagnostics/Diagnostic.cs @@ -1,8 +1,8 @@ using System.Text; -using Nub.Lang.Syntax.Parsing; -using Nub.Lang.Syntax.Tokenization; +using syntax.Parsing; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Diagnostics; +namespace syntax.Diagnostics; public class Diagnostic { diff --git a/src/syntax/Diagnostics/DiagnosticsResult.cs b/src/Syntax/Diagnostics/DiagnosticsResult.cs similarity index 93% rename from src/syntax/Diagnostics/DiagnosticsResult.cs rename to src/Syntax/Diagnostics/DiagnosticsResult.cs index 48d8786..ab4f6e3 100644 --- a/src/syntax/Diagnostics/DiagnosticsResult.cs +++ b/src/Syntax/Diagnostics/DiagnosticsResult.cs @@ -1,4 +1,4 @@ -namespace Nub.Lang.Syntax.Diagnostics; +namespace syntax.Diagnostics; public class DiagnosticsResult(List diagnostics) { diff --git a/src/syntax/Parsing/CompilationUnit.cs b/src/Syntax/Parsing/CompilationUnit.cs similarity index 71% rename from src/syntax/Parsing/CompilationUnit.cs rename to src/Syntax/Parsing/CompilationUnit.cs index 80eb523..d3971c5 100644 --- a/src/syntax/Parsing/CompilationUnit.cs +++ b/src/Syntax/Parsing/CompilationUnit.cs @@ -1,6 +1,6 @@ -using Nub.Lang.Syntax.Parsing.Definitions; +using syntax.Parsing.Definitions; -namespace Nub.Lang.Syntax.Parsing; +namespace syntax.Parsing; public class CompilationUnit(string @namespace, List definitions) { diff --git a/src/syntax/Parsing/Definitions/DefinitionNode.cs b/src/Syntax/Parsing/Definitions/DefinitionNode.cs similarity index 70% rename from src/syntax/Parsing/Definitions/DefinitionNode.cs rename to src/Syntax/Parsing/Definitions/DefinitionNode.cs index 8a7470e..c0dc4db 100644 --- a/src/syntax/Parsing/Definitions/DefinitionNode.cs +++ b/src/Syntax/Parsing/Definitions/DefinitionNode.cs @@ -1,7 +1,7 @@ -using Nub.Lang.Common; -using Nub.Lang.Syntax.Tokenization; +using common; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Definitions; +namespace syntax.Parsing.Definitions; public abstract class DefinitionNode(IReadOnlyList tokens, Optional documentation, string @namespace) : Node(tokens) { diff --git a/src/syntax/Parsing/Definitions/FuncDefinitionNode.cs b/src/Syntax/Parsing/Definitions/FuncDefinitionNode.cs similarity index 90% rename from src/syntax/Parsing/Definitions/FuncDefinitionNode.cs rename to src/Syntax/Parsing/Definitions/FuncDefinitionNode.cs index e32f502..b2aab8b 100644 --- a/src/syntax/Parsing/Definitions/FuncDefinitionNode.cs +++ b/src/Syntax/Parsing/Definitions/FuncDefinitionNode.cs @@ -1,9 +1,9 @@ -using Nub.Lang.Common; -using Nub.Lang.Syntax.Parsing.Statements; -using Nub.Lang.Syntax.Tokenization; -using Nub.Lang.Syntax.Typing; +using common; +using syntax.Parsing.Statements; +using syntax.Tokenization; +using syntax.Typing; -namespace Nub.Lang.Syntax.Parsing.Definitions; +namespace syntax.Parsing.Definitions; public class FuncParameter(string name, NubType type) { diff --git a/src/syntax/Parsing/Definitions/StructDefinitionNode.cs b/src/Syntax/Parsing/Definitions/StructDefinitionNode.cs similarity index 74% rename from src/syntax/Parsing/Definitions/StructDefinitionNode.cs rename to src/Syntax/Parsing/Definitions/StructDefinitionNode.cs index a039e2e..e0a5393 100644 --- a/src/syntax/Parsing/Definitions/StructDefinitionNode.cs +++ b/src/Syntax/Parsing/Definitions/StructDefinitionNode.cs @@ -1,9 +1,9 @@ -using Nub.Lang.Common; -using Nub.Lang.Syntax.Parsing.Expressions; -using Nub.Lang.Syntax.Tokenization; -using Nub.Lang.Syntax.Typing; +using common; +using syntax.Parsing.Expressions; +using syntax.Tokenization; +using syntax.Typing; -namespace Nub.Lang.Syntax.Parsing.Definitions; +namespace syntax.Parsing.Definitions; public class StructField(string name, NubType type, Optional value) { diff --git a/src/syntax/Parsing/Expressions/AddressOfNode.cs b/src/Syntax/Parsing/Expressions/AddressOfNode.cs similarity index 66% rename from src/syntax/Parsing/Expressions/AddressOfNode.cs rename to src/Syntax/Parsing/Expressions/AddressOfNode.cs index ac4f135..e45c108 100644 --- a/src/syntax/Parsing/Expressions/AddressOfNode.cs +++ b/src/Syntax/Parsing/Expressions/AddressOfNode.cs @@ -1,6 +1,6 @@ -using Nub.Lang.Syntax.Tokenization; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public class AddressOfNode(IReadOnlyList tokens, LValueNode expression) : ExpressionNode(tokens) { diff --git a/src/syntax/Parsing/Expressions/AnonymousFuncNode.cs b/src/Syntax/Parsing/Expressions/AnonymousFuncNode.cs similarity index 61% rename from src/syntax/Parsing/Expressions/AnonymousFuncNode.cs rename to src/Syntax/Parsing/Expressions/AnonymousFuncNode.cs index 9b06149..a4df1f5 100644 --- a/src/syntax/Parsing/Expressions/AnonymousFuncNode.cs +++ b/src/Syntax/Parsing/Expressions/AnonymousFuncNode.cs @@ -1,9 +1,9 @@ -using Nub.Lang.Syntax.Parsing.Definitions; -using Nub.Lang.Syntax.Parsing.Statements; -using Nub.Lang.Syntax.Tokenization; -using Nub.Lang.Syntax.Typing; +using syntax.Parsing.Definitions; +using syntax.Parsing.Statements; +using syntax.Tokenization; +using syntax.Typing; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public class AnonymousFuncNode(IReadOnlyList tokens, List parameters, BlockNode body, NubType returnType) : ExpressionNode(tokens) { diff --git a/src/syntax/Parsing/Expressions/ArrayIndexAccessNode.cs b/src/Syntax/Parsing/Expressions/ArrayIndexAccessNode.cs similarity index 73% rename from src/syntax/Parsing/Expressions/ArrayIndexAccessNode.cs rename to src/Syntax/Parsing/Expressions/ArrayIndexAccessNode.cs index 705d763..428ced6 100644 --- a/src/syntax/Parsing/Expressions/ArrayIndexAccessNode.cs +++ b/src/Syntax/Parsing/Expressions/ArrayIndexAccessNode.cs @@ -1,6 +1,6 @@ -using Nub.Lang.Syntax.Tokenization; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public class ArrayIndexAccessNode(IReadOnlyList tokens, ExpressionNode array, ExpressionNode index) : LValueNode(tokens) { diff --git a/src/syntax/Parsing/Expressions/ArrayInitializerNode.cs b/src/Syntax/Parsing/Expressions/ArrayInitializerNode.cs similarity index 68% rename from src/syntax/Parsing/Expressions/ArrayInitializerNode.cs rename to src/Syntax/Parsing/Expressions/ArrayInitializerNode.cs index 960075d..0ac17b7 100644 --- a/src/syntax/Parsing/Expressions/ArrayInitializerNode.cs +++ b/src/Syntax/Parsing/Expressions/ArrayInitializerNode.cs @@ -1,7 +1,7 @@ -using Nub.Lang.Syntax.Tokenization; -using Nub.Lang.Syntax.Typing; +using syntax.Tokenization; +using syntax.Typing; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public class ArrayInitializerNode(IReadOnlyList tokens, ExpressionNode capacity, NubType elementType) : ExpressionNode(tokens) { diff --git a/src/syntax/Parsing/Expressions/BinaryExpressionNode.cs b/src/Syntax/Parsing/Expressions/BinaryExpressionNode.cs similarity index 85% rename from src/syntax/Parsing/Expressions/BinaryExpressionNode.cs rename to src/Syntax/Parsing/Expressions/BinaryExpressionNode.cs index 6cc5912..1fbcf53 100644 --- a/src/syntax/Parsing/Expressions/BinaryExpressionNode.cs +++ b/src/Syntax/Parsing/Expressions/BinaryExpressionNode.cs @@ -1,6 +1,6 @@ -using Nub.Lang.Syntax.Tokenization; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public class BinaryExpressionNode(IReadOnlyList tokens, ExpressionNode left, BinaryExpressionOperator @operator, ExpressionNode right) : ExpressionNode(tokens) { diff --git a/src/syntax/Parsing/Expressions/DereferenceNode.cs b/src/Syntax/Parsing/Expressions/DereferenceNode.cs similarity index 66% rename from src/syntax/Parsing/Expressions/DereferenceNode.cs rename to src/Syntax/Parsing/Expressions/DereferenceNode.cs index 1f6cd7e..1dbf092 100644 --- a/src/syntax/Parsing/Expressions/DereferenceNode.cs +++ b/src/Syntax/Parsing/Expressions/DereferenceNode.cs @@ -1,6 +1,6 @@ -using Nub.Lang.Syntax.Tokenization; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public class DereferenceNode(IReadOnlyList tokens, ExpressionNode expression) : LValueNode(tokens) { diff --git a/src/syntax/Parsing/Expressions/ExpressionNode.cs b/src/Syntax/Parsing/Expressions/ExpressionNode.cs similarity index 76% rename from src/syntax/Parsing/Expressions/ExpressionNode.cs rename to src/Syntax/Parsing/Expressions/ExpressionNode.cs index 1e3c0f8..be63953 100644 --- a/src/syntax/Parsing/Expressions/ExpressionNode.cs +++ b/src/Syntax/Parsing/Expressions/ExpressionNode.cs @@ -1,7 +1,7 @@ -using Nub.Lang.Syntax.Tokenization; -using Nub.Lang.Syntax.Typing; +using syntax.Tokenization; +using syntax.Typing; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public abstract class ExpressionNode(IReadOnlyList tokens) : Node(tokens) { diff --git a/src/syntax/Parsing/Expressions/FixedArrayInitializerNode.cs b/src/Syntax/Parsing/Expressions/FixedArrayInitializerNode.cs similarity index 67% rename from src/syntax/Parsing/Expressions/FixedArrayInitializerNode.cs rename to src/Syntax/Parsing/Expressions/FixedArrayInitializerNode.cs index e709967..6c6baaa 100644 --- a/src/syntax/Parsing/Expressions/FixedArrayInitializerNode.cs +++ b/src/Syntax/Parsing/Expressions/FixedArrayInitializerNode.cs @@ -1,7 +1,7 @@ -using Nub.Lang.Syntax.Tokenization; -using Nub.Lang.Syntax.Typing; +using syntax.Tokenization; +using syntax.Typing; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public class FixedArrayInitializerNode(IReadOnlyList tokens, NubType elementType, int capacity) : ExpressionNode(tokens) { diff --git a/src/syntax/Parsing/Expressions/FuncCallNode.cs b/src/Syntax/Parsing/Expressions/FuncCallNode.cs similarity index 80% rename from src/syntax/Parsing/Expressions/FuncCallNode.cs rename to src/Syntax/Parsing/Expressions/FuncCallNode.cs index b50a6ef..c44c01b 100644 --- a/src/syntax/Parsing/Expressions/FuncCallNode.cs +++ b/src/Syntax/Parsing/Expressions/FuncCallNode.cs @@ -1,6 +1,6 @@ -using Nub.Lang.Syntax.Tokenization; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public class FuncCallNode(IReadOnlyList tokens, ExpressionNode expression, List parameters) : ExpressionNode(tokens) { diff --git a/src/syntax/Parsing/Expressions/IdentifierNode.cs b/src/Syntax/Parsing/Expressions/IdentifierNode.cs similarity index 74% rename from src/syntax/Parsing/Expressions/IdentifierNode.cs rename to src/Syntax/Parsing/Expressions/IdentifierNode.cs index 1ff9afa..7e52a5d 100644 --- a/src/syntax/Parsing/Expressions/IdentifierNode.cs +++ b/src/Syntax/Parsing/Expressions/IdentifierNode.cs @@ -1,7 +1,7 @@ -using Nub.Lang.Common; -using Nub.Lang.Syntax.Tokenization; +using common; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public class IdentifierNode(IReadOnlyList tokens, Optional @namespace, string name) : LValueNode(tokens) { diff --git a/src/syntax/Parsing/Expressions/LiteralNode.cs b/src/Syntax/Parsing/Expressions/LiteralNode.cs similarity index 70% rename from src/syntax/Parsing/Expressions/LiteralNode.cs rename to src/Syntax/Parsing/Expressions/LiteralNode.cs index 9b02bcc..40c355d 100644 --- a/src/syntax/Parsing/Expressions/LiteralNode.cs +++ b/src/Syntax/Parsing/Expressions/LiteralNode.cs @@ -1,6 +1,6 @@ -using Nub.Lang.Syntax.Tokenization; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public class LiteralNode(IReadOnlyList tokens, string literal, LiteralKind kind) : ExpressionNode(tokens) { diff --git a/src/syntax/Parsing/Expressions/MemberAccessNode.cs b/src/Syntax/Parsing/Expressions/MemberAccessNode.cs similarity index 72% rename from src/syntax/Parsing/Expressions/MemberAccessNode.cs rename to src/Syntax/Parsing/Expressions/MemberAccessNode.cs index 54ffc5b..454410c 100644 --- a/src/syntax/Parsing/Expressions/MemberAccessNode.cs +++ b/src/Syntax/Parsing/Expressions/MemberAccessNode.cs @@ -1,6 +1,6 @@ -using Nub.Lang.Syntax.Tokenization; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public class MemberAccessNode(IReadOnlyList tokens, ExpressionNode expression, string member) : LValueNode(tokens) { diff --git a/src/syntax/Parsing/Expressions/StructInitializerNode.cs b/src/Syntax/Parsing/Expressions/StructInitializerNode.cs similarity index 72% rename from src/syntax/Parsing/Expressions/StructInitializerNode.cs rename to src/Syntax/Parsing/Expressions/StructInitializerNode.cs index d6198dd..c203262 100644 --- a/src/syntax/Parsing/Expressions/StructInitializerNode.cs +++ b/src/Syntax/Parsing/Expressions/StructInitializerNode.cs @@ -1,7 +1,7 @@ -using Nub.Lang.Syntax.Tokenization; -using Nub.Lang.Syntax.Typing; +using syntax.Tokenization; +using syntax.Typing; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public class StructInitializerNode(IReadOnlyList tokens, NubStructType structType, Dictionary initializers) : ExpressionNode(tokens) { diff --git a/src/syntax/Parsing/Expressions/UnaryExpressionNode.cs b/src/Syntax/Parsing/Expressions/UnaryExpressionNode.cs similarity index 79% rename from src/syntax/Parsing/Expressions/UnaryExpressionNode.cs rename to src/Syntax/Parsing/Expressions/UnaryExpressionNode.cs index aa2f01f..d07fb05 100644 --- a/src/syntax/Parsing/Expressions/UnaryExpressionNode.cs +++ b/src/Syntax/Parsing/Expressions/UnaryExpressionNode.cs @@ -1,6 +1,6 @@ -using Nub.Lang.Syntax.Tokenization; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Expressions; +namespace syntax.Parsing.Expressions; public class UnaryExpressionNode(IReadOnlyList tokens, UnaryExpressionOperator @operator, ExpressionNode operand) : ExpressionNode(tokens) { diff --git a/src/syntax/Parsing/Node.cs b/src/Syntax/Parsing/Node.cs similarity index 62% rename from src/syntax/Parsing/Node.cs rename to src/Syntax/Parsing/Node.cs index 0fba550..c0a0281 100644 --- a/src/syntax/Parsing/Node.cs +++ b/src/Syntax/Parsing/Node.cs @@ -1,6 +1,6 @@ -using Nub.Lang.Syntax.Tokenization; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing; +namespace syntax.Parsing; public abstract class Node(IReadOnlyList tokens) { diff --git a/src/syntax/Parsing/Parser.cs b/src/Syntax/Parsing/Parser.cs similarity index 98% rename from src/syntax/Parsing/Parser.cs rename to src/Syntax/Parsing/Parser.cs index 16179e4..a3dba2c 100644 --- a/src/syntax/Parsing/Parser.cs +++ b/src/Syntax/Parsing/Parser.cs @@ -1,14 +1,14 @@ using System.Diagnostics; using System.Diagnostics.CodeAnalysis; -using Nub.Lang.Common; -using Nub.Lang.Syntax.Diagnostics; -using Nub.Lang.Syntax.Parsing.Definitions; -using Nub.Lang.Syntax.Parsing.Expressions; -using Nub.Lang.Syntax.Parsing.Statements; -using Nub.Lang.Syntax.Tokenization; -using Nub.Lang.Syntax.Typing; +using common; +using syntax.Diagnostics; +using syntax.Parsing.Definitions; +using syntax.Parsing.Expressions; +using syntax.Parsing.Statements; +using syntax.Tokenization; +using syntax.Typing; -namespace Nub.Lang.Syntax.Parsing; +namespace syntax.Parsing; public static class Parser { @@ -763,7 +763,7 @@ public static class Parser } throw new ParseException(Diagnostic - .Error("Invalid type syntax") + .Error("Invalid type Syntax") .WithHelp("Expected type name, '^' for pointer, or '[]' for array") .At(peekToken) .Build()); @@ -775,7 +775,7 @@ public static class Parser { throw new ParseException(Diagnostic .Error("Unexpected end of file") - .WithHelp("Expected more tokens to complete the syntax") + .WithHelp("Expected more tokens to complete the Syntax") .At(_tokens.Last()) .Build()); } diff --git a/src/syntax/Parsing/Statements/ArrayIndexAssignmentNode.cs b/src/Syntax/Parsing/Statements/ArrayIndexAssignmentNode.cs similarity index 69% rename from src/syntax/Parsing/Statements/ArrayIndexAssignmentNode.cs rename to src/Syntax/Parsing/Statements/ArrayIndexAssignmentNode.cs index 890feee..8fa11bc 100644 --- a/src/syntax/Parsing/Statements/ArrayIndexAssignmentNode.cs +++ b/src/Syntax/Parsing/Statements/ArrayIndexAssignmentNode.cs @@ -1,7 +1,7 @@ -using Nub.Lang.Syntax.Parsing.Expressions; -using Nub.Lang.Syntax.Tokenization; +using syntax.Parsing.Expressions; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Statements; +namespace syntax.Parsing.Statements; public class ArrayIndexAssignmentNode(IReadOnlyList tokens, ArrayIndexAccessNode arrayIndexAccess, ExpressionNode value) : StatementNode(tokens) { diff --git a/src/syntax/Parsing/Statements/BlockNode.cs b/src/Syntax/Parsing/Statements/BlockNode.cs similarity index 66% rename from src/syntax/Parsing/Statements/BlockNode.cs rename to src/Syntax/Parsing/Statements/BlockNode.cs index 89732b7..16fe3c5 100644 --- a/src/syntax/Parsing/Statements/BlockNode.cs +++ b/src/Syntax/Parsing/Statements/BlockNode.cs @@ -1,6 +1,6 @@ -using Nub.Lang.Syntax.Tokenization; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Statements; +namespace syntax.Parsing.Statements; public class BlockNode(IReadOnlyList tokens, List statements) : Node(tokens) { diff --git a/src/Syntax/Parsing/Statements/BreakNode.cs b/src/Syntax/Parsing/Statements/BreakNode.cs new file mode 100644 index 0000000..3eb6069 --- /dev/null +++ b/src/Syntax/Parsing/Statements/BreakNode.cs @@ -0,0 +1,5 @@ +using syntax.Tokenization; + +namespace syntax.Parsing.Statements; + +public class BreakNode(IReadOnlyList tokens) : StatementNode(tokens); \ No newline at end of file diff --git a/src/Syntax/Parsing/Statements/ContinueNode.cs b/src/Syntax/Parsing/Statements/ContinueNode.cs new file mode 100644 index 0000000..98c888a --- /dev/null +++ b/src/Syntax/Parsing/Statements/ContinueNode.cs @@ -0,0 +1,5 @@ +using syntax.Tokenization; + +namespace syntax.Parsing.Statements; + +public class ContinueNode(IReadOnlyList tokens) : StatementNode(tokens); \ No newline at end of file diff --git a/src/syntax/Parsing/Statements/DereferenceAssignmentNode.cs b/src/Syntax/Parsing/Statements/DereferenceAssignmentNode.cs similarity index 67% rename from src/syntax/Parsing/Statements/DereferenceAssignmentNode.cs rename to src/Syntax/Parsing/Statements/DereferenceAssignmentNode.cs index 77b140e..7ab2bb2 100644 --- a/src/syntax/Parsing/Statements/DereferenceAssignmentNode.cs +++ b/src/Syntax/Parsing/Statements/DereferenceAssignmentNode.cs @@ -1,7 +1,7 @@ -using Nub.Lang.Syntax.Parsing.Expressions; -using Nub.Lang.Syntax.Tokenization; +using syntax.Parsing.Expressions; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Statements; +namespace syntax.Parsing.Statements; public class DereferenceAssignmentNode(IReadOnlyList tokens, DereferenceNode dereference, ExpressionNode value) : StatementNode(tokens) { diff --git a/src/syntax/Parsing/Statements/IfNode.cs b/src/Syntax/Parsing/Statements/IfNode.cs similarity index 68% rename from src/syntax/Parsing/Statements/IfNode.cs rename to src/Syntax/Parsing/Statements/IfNode.cs index a84af29..3bb52ba 100644 --- a/src/syntax/Parsing/Statements/IfNode.cs +++ b/src/Syntax/Parsing/Statements/IfNode.cs @@ -1,8 +1,8 @@ -using Nub.Lang.Common; -using Nub.Lang.Syntax.Parsing.Expressions; -using Nub.Lang.Syntax.Tokenization; +using common; +using syntax.Parsing.Expressions; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Statements; +namespace syntax.Parsing.Statements; public class IfNode(IReadOnlyList tokens, ExpressionNode condition, BlockNode body, Optional> @else) : StatementNode(tokens) { diff --git a/src/syntax/Parsing/Statements/MemberAssignmentNode.cs b/src/Syntax/Parsing/Statements/MemberAssignmentNode.cs similarity index 67% rename from src/syntax/Parsing/Statements/MemberAssignmentNode.cs rename to src/Syntax/Parsing/Statements/MemberAssignmentNode.cs index 19c169a..b9cd7ee 100644 --- a/src/syntax/Parsing/Statements/MemberAssignmentNode.cs +++ b/src/Syntax/Parsing/Statements/MemberAssignmentNode.cs @@ -1,7 +1,7 @@ -using Nub.Lang.Syntax.Parsing.Expressions; -using Nub.Lang.Syntax.Tokenization; +using syntax.Parsing.Expressions; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Statements; +namespace syntax.Parsing.Statements; public class MemberAssignmentNode(IReadOnlyList tokens, MemberAccessNode expression, ExpressionNode value) : StatementNode(tokens) { diff --git a/src/syntax/Parsing/Statements/ReturnNode.cs b/src/Syntax/Parsing/Statements/ReturnNode.cs similarity index 53% rename from src/syntax/Parsing/Statements/ReturnNode.cs rename to src/Syntax/Parsing/Statements/ReturnNode.cs index 3acc5fd..6c073bf 100644 --- a/src/syntax/Parsing/Statements/ReturnNode.cs +++ b/src/Syntax/Parsing/Statements/ReturnNode.cs @@ -1,8 +1,8 @@ -using Nub.Lang.Common; -using Nub.Lang.Syntax.Parsing.Expressions; -using Nub.Lang.Syntax.Tokenization; +using common; +using syntax.Parsing.Expressions; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Statements; +namespace syntax.Parsing.Statements; public class ReturnNode(IReadOnlyList tokens, Optional value) : StatementNode(tokens) { diff --git a/src/syntax/Parsing/Statements/StatementExpressionNode.cs b/src/Syntax/Parsing/Statements/StatementExpressionNode.cs similarity index 58% rename from src/syntax/Parsing/Statements/StatementExpressionNode.cs rename to src/Syntax/Parsing/Statements/StatementExpressionNode.cs index d9400e6..31937c2 100644 --- a/src/syntax/Parsing/Statements/StatementExpressionNode.cs +++ b/src/Syntax/Parsing/Statements/StatementExpressionNode.cs @@ -1,7 +1,7 @@ -using Nub.Lang.Syntax.Parsing.Expressions; -using Nub.Lang.Syntax.Tokenization; +using syntax.Parsing.Expressions; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Statements; +namespace syntax.Parsing.Statements; public class StatementExpressionNode(IReadOnlyList tokens, ExpressionNode expression) : StatementNode(tokens) { diff --git a/src/Syntax/Parsing/Statements/StatementNode.cs b/src/Syntax/Parsing/Statements/StatementNode.cs new file mode 100644 index 0000000..56bd0f9 --- /dev/null +++ b/src/Syntax/Parsing/Statements/StatementNode.cs @@ -0,0 +1,5 @@ +using syntax.Tokenization; + +namespace syntax.Parsing.Statements; + +public abstract class StatementNode(IReadOnlyList tokens) : Node(tokens); \ No newline at end of file diff --git a/src/syntax/Parsing/Statements/VariableAssignmentNode.cs b/src/Syntax/Parsing/Statements/VariableAssignmentNode.cs similarity index 66% rename from src/syntax/Parsing/Statements/VariableAssignmentNode.cs rename to src/Syntax/Parsing/Statements/VariableAssignmentNode.cs index e6878f4..fa6c383 100644 --- a/src/syntax/Parsing/Statements/VariableAssignmentNode.cs +++ b/src/Syntax/Parsing/Statements/VariableAssignmentNode.cs @@ -1,7 +1,7 @@ -using Nub.Lang.Syntax.Parsing.Expressions; -using Nub.Lang.Syntax.Tokenization; +using syntax.Parsing.Expressions; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Statements; +namespace syntax.Parsing.Statements; public class VariableAssignmentNode(IReadOnlyList tokens, IdentifierNode identifier, ExpressionNode value) : StatementNode(tokens) { diff --git a/src/syntax/Parsing/Statements/VariableDeclarationNode.cs b/src/Syntax/Parsing/Statements/VariableDeclarationNode.cs similarity index 65% rename from src/syntax/Parsing/Statements/VariableDeclarationNode.cs rename to src/Syntax/Parsing/Statements/VariableDeclarationNode.cs index d5beed9..e9073bb 100644 --- a/src/syntax/Parsing/Statements/VariableDeclarationNode.cs +++ b/src/Syntax/Parsing/Statements/VariableDeclarationNode.cs @@ -1,9 +1,9 @@ -using Nub.Lang.Common; -using Nub.Lang.Syntax.Parsing.Expressions; -using Nub.Lang.Syntax.Tokenization; -using Nub.Lang.Syntax.Typing; +using common; +using syntax.Parsing.Expressions; +using syntax.Tokenization; +using syntax.Typing; -namespace Nub.Lang.Syntax.Parsing.Statements; +namespace syntax.Parsing.Statements; public class VariableDeclarationNode(IReadOnlyList tokens, string name, Optional explicitType, Optional value) : StatementNode(tokens) { diff --git a/src/syntax/Parsing/Statements/WhileNode.cs b/src/Syntax/Parsing/Statements/WhileNode.cs similarity index 63% rename from src/syntax/Parsing/Statements/WhileNode.cs rename to src/Syntax/Parsing/Statements/WhileNode.cs index 13aa304..f8e20ce 100644 --- a/src/syntax/Parsing/Statements/WhileNode.cs +++ b/src/Syntax/Parsing/Statements/WhileNode.cs @@ -1,7 +1,7 @@ -using Nub.Lang.Syntax.Parsing.Expressions; -using Nub.Lang.Syntax.Tokenization; +using syntax.Parsing.Expressions; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Parsing.Statements; +namespace syntax.Parsing.Statements; public class WhileNode(IReadOnlyList tokens, ExpressionNode condition, BlockNode body) : StatementNode(tokens) { diff --git a/src/syntax/Source.cs b/src/Syntax/Source.cs similarity index 99% rename from src/syntax/Source.cs rename to src/Syntax/Source.cs index 3cd0095..46bfc10 100644 --- a/src/syntax/Source.cs +++ b/src/Syntax/Source.cs @@ -1,6 +1,6 @@ using System.Diagnostics.CodeAnalysis; -namespace Nub.Lang.Syntax; +namespace syntax; /// /// Represents a location in source code with line and column information. diff --git a/src/syntax/syntax.csproj b/src/Syntax/Syntax.csproj similarity index 74% rename from src/syntax/syntax.csproj rename to src/Syntax/Syntax.csproj index 156b747..2261bfe 100644 --- a/src/syntax/syntax.csproj +++ b/src/Syntax/Syntax.csproj @@ -5,10 +5,11 @@ enable enable true + syntax - + diff --git a/src/syntax/Tokenization/DocumentationToken.cs b/src/Syntax/Tokenization/DocumentationToken.cs similarity index 69% rename from src/syntax/Tokenization/DocumentationToken.cs rename to src/Syntax/Tokenization/DocumentationToken.cs index d0b4ccc..dc22931 100644 --- a/src/syntax/Tokenization/DocumentationToken.cs +++ b/src/Syntax/Tokenization/DocumentationToken.cs @@ -1,6 +1,4 @@ -using Nub.Lang.Common; - -namespace Nub.Lang.Syntax.Tokenization; +namespace syntax.Tokenization; public class DocumentationToken(SourceSpan span, string documentation) : Token(span) { diff --git a/src/syntax/Tokenization/IdentifierToken.cs b/src/Syntax/Tokenization/IdentifierToken.cs similarity index 63% rename from src/syntax/Tokenization/IdentifierToken.cs rename to src/Syntax/Tokenization/IdentifierToken.cs index 512a31c..7e5b652 100644 --- a/src/syntax/Tokenization/IdentifierToken.cs +++ b/src/Syntax/Tokenization/IdentifierToken.cs @@ -1,6 +1,4 @@ -using Nub.Lang.Common; - -namespace Nub.Lang.Syntax.Tokenization; +namespace syntax.Tokenization; public class IdentifierToken(SourceSpan span, string value) : Token(span) { diff --git a/src/syntax/Tokenization/LiteralToken.cs b/src/Syntax/Tokenization/LiteralToken.cs similarity index 78% rename from src/syntax/Tokenization/LiteralToken.cs rename to src/Syntax/Tokenization/LiteralToken.cs index 3ee15bd..cefbc98 100644 --- a/src/syntax/Tokenization/LiteralToken.cs +++ b/src/Syntax/Tokenization/LiteralToken.cs @@ -1,6 +1,4 @@ -using Nub.Lang.Common; - -namespace Nub.Lang.Syntax.Tokenization; +namespace syntax.Tokenization; public class LiteralToken(SourceSpan span, LiteralKind kind, string value) : Token(span) { diff --git a/src/syntax/Tokenization/ModifierToken.cs b/src/Syntax/Tokenization/ModifierToken.cs similarity index 73% rename from src/syntax/Tokenization/ModifierToken.cs rename to src/Syntax/Tokenization/ModifierToken.cs index fae5977..6cce6c6 100644 --- a/src/syntax/Tokenization/ModifierToken.cs +++ b/src/Syntax/Tokenization/ModifierToken.cs @@ -1,6 +1,4 @@ -using Nub.Lang.Common; - -namespace Nub.Lang.Syntax.Tokenization; +namespace syntax.Tokenization; public class ModifierToken(SourceSpan span, Modifier modifier) : Token(span) { diff --git a/src/syntax/Tokenization/SymbolToken.cs b/src/Syntax/Tokenization/SymbolToken.cs similarity index 90% rename from src/syntax/Tokenization/SymbolToken.cs rename to src/Syntax/Tokenization/SymbolToken.cs index 708adce..917e6f2 100644 --- a/src/syntax/Tokenization/SymbolToken.cs +++ b/src/Syntax/Tokenization/SymbolToken.cs @@ -1,6 +1,4 @@ -using Nub.Lang.Common; - -namespace Nub.Lang.Syntax.Tokenization; +namespace syntax.Tokenization; public class SymbolToken(SourceSpan span, Symbol symbol) : Token(span) { diff --git a/src/syntax/Tokenization/Token.cs b/src/Syntax/Tokenization/Token.cs similarity index 57% rename from src/syntax/Tokenization/Token.cs rename to src/Syntax/Tokenization/Token.cs index b76d8cb..77ca346 100644 --- a/src/syntax/Tokenization/Token.cs +++ b/src/Syntax/Tokenization/Token.cs @@ -1,6 +1,4 @@ -using Nub.Lang.Common; - -namespace Nub.Lang.Syntax.Tokenization; +namespace syntax.Tokenization; public abstract class Token(SourceSpan span) { diff --git a/src/syntax/Tokenization/Tokenizer.cs b/src/Syntax/Tokenization/Tokenizer.cs similarity index 98% rename from src/syntax/Tokenization/Tokenizer.cs rename to src/Syntax/Tokenization/Tokenizer.cs index 6fe56ba..4858e4b 100644 --- a/src/syntax/Tokenization/Tokenizer.cs +++ b/src/Syntax/Tokenization/Tokenizer.cs @@ -1,7 +1,7 @@ -using Nub.Lang.Common; -using Nub.Lang.Syntax.Diagnostics; +using common; +using syntax.Diagnostics; -namespace Nub.Lang.Syntax.Tokenization; +namespace syntax.Tokenization; public static class Tokenizer { diff --git a/src/syntax/Typing/NubType.cs b/src/Syntax/Typing/NubType.cs similarity index 99% rename from src/syntax/Typing/NubType.cs rename to src/Syntax/Typing/NubType.cs index 25d5a4f..6428088 100644 --- a/src/syntax/Typing/NubType.cs +++ b/src/Syntax/Typing/NubType.cs @@ -1,6 +1,6 @@ using System.Diagnostics.CodeAnalysis; -namespace Nub.Lang.Syntax.Typing; +namespace syntax.Typing; public abstract class NubType { diff --git a/src/syntax/Typing/TypeChecker.cs b/src/Syntax/Typing/TypeChecker.cs similarity index 98% rename from src/syntax/Typing/TypeChecker.cs rename to src/Syntax/Typing/TypeChecker.cs index ff0d2f5..5963137 100644 --- a/src/syntax/Typing/TypeChecker.cs +++ b/src/Syntax/Typing/TypeChecker.cs @@ -1,12 +1,12 @@ using System.Diagnostics; -using Nub.Lang.Syntax.Diagnostics; -using Nub.Lang.Syntax.Parsing; -using Nub.Lang.Syntax.Parsing.Definitions; -using Nub.Lang.Syntax.Parsing.Expressions; -using Nub.Lang.Syntax.Parsing.Statements; -using Nub.Lang.Syntax.Tokenization; +using syntax.Diagnostics; +using syntax.Parsing; +using syntax.Parsing.Definitions; +using syntax.Parsing.Expressions; +using syntax.Parsing.Statements; +using syntax.Tokenization; -namespace Nub.Lang.Syntax.Typing; +namespace syntax.Typing; public static class TypeChecker { diff --git a/src/syntax/Parsing/Statements/BreakNode.cs b/src/syntax/Parsing/Statements/BreakNode.cs deleted file mode 100644 index e8e4300..0000000 --- a/src/syntax/Parsing/Statements/BreakNode.cs +++ /dev/null @@ -1,5 +0,0 @@ -using Nub.Lang.Syntax.Tokenization; - -namespace Nub.Lang.Syntax.Parsing.Statements; - -public class BreakNode(IReadOnlyList tokens) : StatementNode(tokens); \ No newline at end of file diff --git a/src/syntax/Parsing/Statements/ContinueNode.cs b/src/syntax/Parsing/Statements/ContinueNode.cs deleted file mode 100644 index 3309119..0000000 --- a/src/syntax/Parsing/Statements/ContinueNode.cs +++ /dev/null @@ -1,5 +0,0 @@ -using Nub.Lang.Syntax.Tokenization; - -namespace Nub.Lang.Syntax.Parsing.Statements; - -public class ContinueNode(IReadOnlyList tokens) : StatementNode(tokens); \ No newline at end of file diff --git a/src/syntax/Parsing/Statements/StatementNode.cs b/src/syntax/Parsing/Statements/StatementNode.cs deleted file mode 100644 index aaa2cea..0000000 --- a/src/syntax/Parsing/Statements/StatementNode.cs +++ /dev/null @@ -1,5 +0,0 @@ -using Nub.Lang.Syntax.Tokenization; - -namespace Nub.Lang.Syntax.Parsing.Statements; - -public abstract class StatementNode(IReadOnlyList tokens) : Node(tokens); \ No newline at end of file