diff --git a/run.sh b/run.sh
index 65e2dd8..83e4d05 100755
--- a/run.sh
+++ b/run.sh
@@ -1,4 +1,4 @@
#!/bin/bash
set -e
-dotnet run --project src/cli/cli.csproj example
+dotnet run --project src/CLI/CLI.csproj example
./bin/out
\ No newline at end of file
diff --git a/src/.idea/.idea.compiler/.idea/.gitignore b/src/.idea/.idea.Compiler/.idea/.gitignore
similarity index 92%
rename from src/.idea/.idea.compiler/.idea/.gitignore
rename to src/.idea/.idea.Compiler/.idea/.gitignore
index c60a61f..cda1cf4 100644
--- a/src/.idea/.idea.compiler/.idea/.gitignore
+++ b/src/.idea/.idea.Compiler/.idea/.gitignore
@@ -2,10 +2,10 @@
/shelf/
/workspace.xml
# Rider ignored files
-/projectSettingsUpdater.xml
-/.idea.compiler.iml
/modules.xml
+/projectSettingsUpdater.xml
/contentModel.xml
+/.idea.Compiler.iml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
diff --git a/src/.idea/.idea.Compiler/.idea/.name b/src/.idea/.idea.Compiler/.idea/.name
new file mode 100644
index 0000000..b92b7a3
--- /dev/null
+++ b/src/.idea/.idea.Compiler/.idea/.name
@@ -0,0 +1 @@
+Compiler
\ No newline at end of file
diff --git a/src/.idea/.idea.compiler/.idea/encodings.xml b/src/.idea/.idea.Compiler/.idea/encodings.xml
similarity index 100%
rename from src/.idea/.idea.compiler/.idea/encodings.xml
rename to src/.idea/.idea.Compiler/.idea/encodings.xml
diff --git a/src/.idea/.idea.compiler/.idea/indexLayout.xml b/src/.idea/.idea.Compiler/.idea/indexLayout.xml
similarity index 100%
rename from src/.idea/.idea.compiler/.idea/indexLayout.xml
rename to src/.idea/.idea.Compiler/.idea/indexLayout.xml
diff --git a/src/.idea/.idea.Compiler/.idea/vcs.xml b/src/.idea/.idea.Compiler/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/src/.idea/.idea.Compiler/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/.idea.compiler/.idea/.name b/src/.idea/.idea.compiler/.idea/.name
deleted file mode 100644
index 7f246c0..0000000
--- a/src/.idea/.idea.compiler/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-compiler
\ No newline at end of file
diff --git a/src/CLI/CLI.csproj b/src/CLI/CLI.csproj
index 8fd0e47..85d1ac5 100644
--- a/src/CLI/CLI.csproj
+++ b/src/CLI/CLI.csproj
@@ -7,12 +7,11 @@
enable
enable
true
- cli
-
-
+
+
diff --git a/src/CLI/Program.cs b/src/CLI/Program.cs
index 205ae22..764742c 100644
--- a/src/CLI/Program.cs
+++ b/src/CLI/Program.cs
@@ -1,10 +1,10 @@
using System.Diagnostics;
using System.Reflection;
-using generation.QBE;
-using syntax;
-using syntax.Parsing;
-using syntax.Tokenization;
-using 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
index ffbc28d..c46e228 100644
--- a/src/CLI/Runtime/entry.s
+++ b/src/CLI/Runtime/entry.s
@@ -1,4 +1,4 @@
-.intel_syntax noprefix
+.intel_Syntax noprefix
.extern main
.section .text
diff --git a/src/CLI/Runtime/nub_memcpy.s b/src/CLI/Runtime/nub_memcpy.s
index 9fdf4b6..e7ce785 100644
--- a/src/CLI/Runtime/nub_memcpy.s
+++ b/src/CLI/Runtime/nub_memcpy.s
@@ -1,4 +1,4 @@
-.intel_syntax noprefix
+.intel_Syntax noprefix
.section .text
# func nub_memcpy(destination: ^u8, source: ^u8, count: u64): ^u8
diff --git a/src/CLI/Runtime/nub_memset.s b/src/CLI/Runtime/nub_memset.s
index 4c29263..63c3757 100644
--- a/src/CLI/Runtime/nub_memset.s
+++ b/src/CLI/Runtime/nub_memset.s
@@ -1,4 +1,4 @@
-.intel_syntax noprefix
+.intel_Syntax noprefix
.section .text
# func nub_memset(destination: ^u8, value: i8, count: u64): ^u8
diff --git a/src/CLI/Runtime/nub_panic.s b/src/CLI/Runtime/nub_panic.s
index 66e643f..3b65f41 100644
--- a/src/CLI/Runtime/nub_panic.s
+++ b/src/CLI/Runtime/nub_panic.s
@@ -1,4 +1,4 @@
-.intel_syntax noprefix
+.intel_Syntax noprefix
.section .text
# func nub_panic(message: ^u8, message_length: u64): void
diff --git a/src/CLI/Runtime/nub_strcmp.s b/src/CLI/Runtime/nub_strcmp.s
index da502ec..f1d278a 100644
--- a/src/CLI/Runtime/nub_strcmp.s
+++ b/src/CLI/Runtime/nub_strcmp.s
@@ -1,4 +1,4 @@
-.intel_syntax noprefix
+.intel_Syntax noprefix
.section .text
# func nub_strcmp(lhs: ^u8, rhs: ^u8): bool
diff --git a/src/Common/Common.csproj b/src/Common/Common.csproj
index 614e531..b682a68 100644
--- a/src/Common/Common.csproj
+++ b/src/Common/Common.csproj
@@ -4,7 +4,7 @@
net9.0
enable
enable
- common
+ true
diff --git a/src/Common/Optional.cs b/src/Common/Optional.cs
index 8a93549..5cd9f29 100644
--- a/src/Common/Optional.cs
+++ b/src/Common/Optional.cs
@@ -1,6 +1,6 @@
using System.Diagnostics.CodeAnalysis;
-namespace common;
+namespace Common;
public readonly struct Optional
{
diff --git a/src/Common/Variant.cs b/src/Common/Variant.cs
index 4321cf4..541b111 100644
--- a/src/Common/Variant.cs
+++ b/src/Common/Variant.cs
@@ -1,4 +1,4 @@
-namespace common;
+namespace Common;
public readonly struct Variant where T1 : notnull where T2 : notnull
{
diff --git a/src/Generation/Generation.csproj b/src/Generation/Generation.csproj
index aad8856..fbe4e73 100644
--- a/src/Generation/Generation.csproj
+++ b/src/Generation/Generation.csproj
@@ -4,12 +4,12 @@
net9.0
enable
enable
- generation
+ true
-
+
diff --git a/src/Generation/QBE/QBEGenerator.cs b/src/Generation/QBE/QBEGenerator.cs
index fa42255..b721e3a 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 syntax;
-using syntax.Parsing;
-using syntax.Parsing.Definitions;
-using syntax.Parsing.Expressions;
-using syntax.Parsing.Statements;
-using syntax.Tokenization;
-using 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 generation.QBE;
+namespace Generation.QBE;
public static class QBEGenerator
{
diff --git a/src/Syntax/DefinitionTable.cs b/src/Syntax/DefinitionTable.cs
index 7a107c4..235d10a 100644
--- a/src/Syntax/DefinitionTable.cs
+++ b/src/Syntax/DefinitionTable.cs
@@ -1,8 +1,8 @@
-using common;
-using syntax.Parsing;
-using syntax.Parsing.Definitions;
+using Common;
+using Syntax.Parsing;
+using Syntax.Parsing.Definitions;
-namespace syntax;
+namespace Syntax;
public class DefinitionTable
{
diff --git a/src/Syntax/Diagnostics/ConsoleColors.cs b/src/Syntax/Diagnostics/ConsoleColors.cs
index 10256c9..4275a60 100644
--- a/src/Syntax/Diagnostics/ConsoleColors.cs
+++ b/src/Syntax/Diagnostics/ConsoleColors.cs
@@ -1,7 +1,7 @@
using System.Text;
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace syntax.Diagnostics;
+namespace Syntax.Diagnostics;
public static class ConsoleColors
{
diff --git a/src/Syntax/Diagnostics/Diagnostic.cs b/src/Syntax/Diagnostics/Diagnostic.cs
index 70593aa..6f0e06f 100644
--- a/src/Syntax/Diagnostics/Diagnostic.cs
+++ b/src/Syntax/Diagnostics/Diagnostic.cs
@@ -1,8 +1,8 @@
using System.Text;
-using syntax.Parsing;
-using syntax.Tokenization;
+using Syntax.Parsing;
+using Syntax.Tokenization;
-namespace syntax.Diagnostics;
+namespace Syntax.Diagnostics;
public class Diagnostic
{
diff --git a/src/Syntax/Diagnostics/DiagnosticsResult.cs b/src/Syntax/Diagnostics/DiagnosticsResult.cs
index ab4f6e3..70e7bde 100644
--- a/src/Syntax/Diagnostics/DiagnosticsResult.cs
+++ b/src/Syntax/Diagnostics/DiagnosticsResult.cs
@@ -1,4 +1,4 @@
-namespace syntax.Diagnostics;
+namespace Syntax.Diagnostics;
public class DiagnosticsResult(List diagnostics)
{
diff --git a/src/Syntax/Parsing/CompilationUnit.cs b/src/Syntax/Parsing/CompilationUnit.cs
index d3971c5..68e723d 100644
--- a/src/Syntax/Parsing/CompilationUnit.cs
+++ b/src/Syntax/Parsing/CompilationUnit.cs
@@ -1,6 +1,6 @@
-using syntax.Parsing.Definitions;
+using Syntax.Parsing.Definitions;
-namespace 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
index c0dc4db..dbdeb20 100644
--- a/src/Syntax/Parsing/Definitions/DefinitionNode.cs
+++ b/src/Syntax/Parsing/Definitions/DefinitionNode.cs
@@ -1,7 +1,7 @@
-using common;
-using syntax.Tokenization;
+using Common;
+using Syntax.Tokenization;
-namespace 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
index b2aab8b..d8a0c6b 100644
--- a/src/Syntax/Parsing/Definitions/FuncDefinitionNode.cs
+++ b/src/Syntax/Parsing/Definitions/FuncDefinitionNode.cs
@@ -1,9 +1,9 @@
-using common;
-using syntax.Parsing.Statements;
-using syntax.Tokenization;
-using syntax.Typing;
+using Common;
+using Syntax.Parsing.Statements;
+using Syntax.Tokenization;
+using Syntax.Typing;
-namespace 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
index e0a5393..eca4386 100644
--- a/src/Syntax/Parsing/Definitions/StructDefinitionNode.cs
+++ b/src/Syntax/Parsing/Definitions/StructDefinitionNode.cs
@@ -1,9 +1,9 @@
-using common;
-using syntax.Parsing.Expressions;
-using syntax.Tokenization;
-using syntax.Typing;
+using Common;
+using Syntax.Parsing.Expressions;
+using Syntax.Tokenization;
+using Syntax.Typing;
-namespace 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
index e45c108..096da0f 100644
--- a/src/Syntax/Parsing/Expressions/AddressOfNode.cs
+++ b/src/Syntax/Parsing/Expressions/AddressOfNode.cs
@@ -1,6 +1,6 @@
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace 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
index a4df1f5..fbce82d 100644
--- a/src/Syntax/Parsing/Expressions/AnonymousFuncNode.cs
+++ b/src/Syntax/Parsing/Expressions/AnonymousFuncNode.cs
@@ -1,9 +1,9 @@
-using syntax.Parsing.Definitions;
-using syntax.Parsing.Statements;
-using syntax.Tokenization;
-using syntax.Typing;
+using Syntax.Parsing.Definitions;
+using Syntax.Parsing.Statements;
+using Syntax.Tokenization;
+using Syntax.Typing;
-namespace 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
index 428ced6..d408a21 100644
--- a/src/Syntax/Parsing/Expressions/ArrayIndexAccessNode.cs
+++ b/src/Syntax/Parsing/Expressions/ArrayIndexAccessNode.cs
@@ -1,6 +1,6 @@
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace 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
index 0ac17b7..7cd9cd2 100644
--- a/src/Syntax/Parsing/Expressions/ArrayInitializerNode.cs
+++ b/src/Syntax/Parsing/Expressions/ArrayInitializerNode.cs
@@ -1,7 +1,7 @@
-using syntax.Tokenization;
-using syntax.Typing;
+using Syntax.Tokenization;
+using Syntax.Typing;
-namespace 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
index 1fbcf53..64d0a7f 100644
--- a/src/Syntax/Parsing/Expressions/BinaryExpressionNode.cs
+++ b/src/Syntax/Parsing/Expressions/BinaryExpressionNode.cs
@@ -1,6 +1,6 @@
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace 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
index 1dbf092..e66175a 100644
--- a/src/Syntax/Parsing/Expressions/DereferenceNode.cs
+++ b/src/Syntax/Parsing/Expressions/DereferenceNode.cs
@@ -1,6 +1,6 @@
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace 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
index be63953..1760a9c 100644
--- a/src/Syntax/Parsing/Expressions/ExpressionNode.cs
+++ b/src/Syntax/Parsing/Expressions/ExpressionNode.cs
@@ -1,7 +1,7 @@
-using syntax.Tokenization;
-using syntax.Typing;
+using Syntax.Tokenization;
+using Syntax.Typing;
-namespace 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
index 6c6baaa..479182d 100644
--- a/src/Syntax/Parsing/Expressions/FixedArrayInitializerNode.cs
+++ b/src/Syntax/Parsing/Expressions/FixedArrayInitializerNode.cs
@@ -1,7 +1,7 @@
-using syntax.Tokenization;
-using syntax.Typing;
+using Syntax.Tokenization;
+using Syntax.Typing;
-namespace 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
index c44c01b..1da4ced 100644
--- a/src/Syntax/Parsing/Expressions/FuncCallNode.cs
+++ b/src/Syntax/Parsing/Expressions/FuncCallNode.cs
@@ -1,6 +1,6 @@
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace 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
index 7e52a5d..9aac442 100644
--- a/src/Syntax/Parsing/Expressions/IdentifierNode.cs
+++ b/src/Syntax/Parsing/Expressions/IdentifierNode.cs
@@ -1,7 +1,7 @@
-using common;
-using syntax.Tokenization;
+using Common;
+using Syntax.Tokenization;
-namespace 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
index 40c355d..cf0d382 100644
--- a/src/Syntax/Parsing/Expressions/LiteralNode.cs
+++ b/src/Syntax/Parsing/Expressions/LiteralNode.cs
@@ -1,6 +1,6 @@
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace 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
index 454410c..6988b36 100644
--- a/src/Syntax/Parsing/Expressions/MemberAccessNode.cs
+++ b/src/Syntax/Parsing/Expressions/MemberAccessNode.cs
@@ -1,6 +1,6 @@
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace 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
index c203262..d398e40 100644
--- a/src/Syntax/Parsing/Expressions/StructInitializerNode.cs
+++ b/src/Syntax/Parsing/Expressions/StructInitializerNode.cs
@@ -1,7 +1,7 @@
-using syntax.Tokenization;
-using syntax.Typing;
+using Syntax.Tokenization;
+using Syntax.Typing;
-namespace 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
index d07fb05..77e9969 100644
--- a/src/Syntax/Parsing/Expressions/UnaryExpressionNode.cs
+++ b/src/Syntax/Parsing/Expressions/UnaryExpressionNode.cs
@@ -1,6 +1,6 @@
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace 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
index c0a0281..86ef4e2 100644
--- a/src/Syntax/Parsing/Node.cs
+++ b/src/Syntax/Parsing/Node.cs
@@ -1,6 +1,6 @@
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace 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
index a3dba2c..1bd2c17 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 common;
-using syntax.Diagnostics;
-using syntax.Parsing.Definitions;
-using syntax.Parsing.Expressions;
-using syntax.Parsing.Statements;
-using syntax.Tokenization;
-using 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 syntax.Parsing;
+namespace Syntax.Parsing;
public static class Parser
{
diff --git a/src/Syntax/Parsing/Statements/ArrayIndexAssignmentNode.cs b/src/Syntax/Parsing/Statements/ArrayIndexAssignmentNode.cs
index 8fa11bc..cd730f4 100644
--- a/src/Syntax/Parsing/Statements/ArrayIndexAssignmentNode.cs
+++ b/src/Syntax/Parsing/Statements/ArrayIndexAssignmentNode.cs
@@ -1,7 +1,7 @@
-using syntax.Parsing.Expressions;
-using syntax.Tokenization;
+using Syntax.Parsing.Expressions;
+using Syntax.Tokenization;
-namespace 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
index 16fe3c5..b540443 100644
--- a/src/Syntax/Parsing/Statements/BlockNode.cs
+++ b/src/Syntax/Parsing/Statements/BlockNode.cs
@@ -1,6 +1,6 @@
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace 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
index 3eb6069..90c2583 100644
--- a/src/Syntax/Parsing/Statements/BreakNode.cs
+++ b/src/Syntax/Parsing/Statements/BreakNode.cs
@@ -1,5 +1,5 @@
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace syntax.Parsing.Statements;
+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
index 98c888a..686de7b 100644
--- a/src/Syntax/Parsing/Statements/ContinueNode.cs
+++ b/src/Syntax/Parsing/Statements/ContinueNode.cs
@@ -1,5 +1,5 @@
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace syntax.Parsing.Statements;
+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
index 7ab2bb2..70e0ace 100644
--- a/src/Syntax/Parsing/Statements/DereferenceAssignmentNode.cs
+++ b/src/Syntax/Parsing/Statements/DereferenceAssignmentNode.cs
@@ -1,7 +1,7 @@
-using syntax.Parsing.Expressions;
-using syntax.Tokenization;
+using Syntax.Parsing.Expressions;
+using Syntax.Tokenization;
-namespace 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
index 3bb52ba..5a598ef 100644
--- a/src/Syntax/Parsing/Statements/IfNode.cs
+++ b/src/Syntax/Parsing/Statements/IfNode.cs
@@ -1,8 +1,8 @@
-using common;
-using syntax.Parsing.Expressions;
-using syntax.Tokenization;
+using Common;
+using Syntax.Parsing.Expressions;
+using Syntax.Tokenization;
-namespace 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
index b9cd7ee..a288bf4 100644
--- a/src/Syntax/Parsing/Statements/MemberAssignmentNode.cs
+++ b/src/Syntax/Parsing/Statements/MemberAssignmentNode.cs
@@ -1,7 +1,7 @@
-using syntax.Parsing.Expressions;
-using syntax.Tokenization;
+using Syntax.Parsing.Expressions;
+using Syntax.Tokenization;
-namespace 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
index 6c073bf..3b89a00 100644
--- a/src/Syntax/Parsing/Statements/ReturnNode.cs
+++ b/src/Syntax/Parsing/Statements/ReturnNode.cs
@@ -1,8 +1,8 @@
-using common;
-using syntax.Parsing.Expressions;
-using syntax.Tokenization;
+using Common;
+using Syntax.Parsing.Expressions;
+using Syntax.Tokenization;
-namespace 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
index 31937c2..5dbde34 100644
--- a/src/Syntax/Parsing/Statements/StatementExpressionNode.cs
+++ b/src/Syntax/Parsing/Statements/StatementExpressionNode.cs
@@ -1,7 +1,7 @@
-using syntax.Parsing.Expressions;
-using syntax.Tokenization;
+using Syntax.Parsing.Expressions;
+using Syntax.Tokenization;
-namespace 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
index 56bd0f9..d50eb16 100644
--- a/src/Syntax/Parsing/Statements/StatementNode.cs
+++ b/src/Syntax/Parsing/Statements/StatementNode.cs
@@ -1,5 +1,5 @@
-using syntax.Tokenization;
+using Syntax.Tokenization;
-namespace syntax.Parsing.Statements;
+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
index fa6c383..51abb63 100644
--- a/src/Syntax/Parsing/Statements/VariableAssignmentNode.cs
+++ b/src/Syntax/Parsing/Statements/VariableAssignmentNode.cs
@@ -1,7 +1,7 @@
-using syntax.Parsing.Expressions;
-using syntax.Tokenization;
+using Syntax.Parsing.Expressions;
+using Syntax.Tokenization;
-namespace 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
index e9073bb..a4546f1 100644
--- a/src/Syntax/Parsing/Statements/VariableDeclarationNode.cs
+++ b/src/Syntax/Parsing/Statements/VariableDeclarationNode.cs
@@ -1,9 +1,9 @@
-using common;
-using syntax.Parsing.Expressions;
-using syntax.Tokenization;
-using syntax.Typing;
+using Common;
+using Syntax.Parsing.Expressions;
+using Syntax.Tokenization;
+using Syntax.Typing;
-namespace 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
index f8e20ce..24af7fd 100644
--- a/src/Syntax/Parsing/Statements/WhileNode.cs
+++ b/src/Syntax/Parsing/Statements/WhileNode.cs
@@ -1,7 +1,7 @@
-using syntax.Parsing.Expressions;
-using syntax.Tokenization;
+using Syntax.Parsing.Expressions;
+using Syntax.Tokenization;
-namespace 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
index 46bfc10..bfeb6af 100644
--- a/src/Syntax/Source.cs
+++ b/src/Syntax/Source.cs
@@ -1,6 +1,6 @@
using System.Diagnostics.CodeAnalysis;
-namespace 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
index 2261bfe..31addee 100644
--- a/src/Syntax/Syntax.csproj
+++ b/src/Syntax/Syntax.csproj
@@ -5,7 +5,6 @@
enable
enable
true
- syntax
diff --git a/src/Syntax/Tokenization/DocumentationToken.cs b/src/Syntax/Tokenization/DocumentationToken.cs
index dc22931..54a0e51 100644
--- a/src/Syntax/Tokenization/DocumentationToken.cs
+++ b/src/Syntax/Tokenization/DocumentationToken.cs
@@ -1,4 +1,4 @@
-namespace 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
index 7e5b652..7d8c9e7 100644
--- a/src/Syntax/Tokenization/IdentifierToken.cs
+++ b/src/Syntax/Tokenization/IdentifierToken.cs
@@ -1,4 +1,4 @@
-namespace 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
index cefbc98..f16671e 100644
--- a/src/Syntax/Tokenization/LiteralToken.cs
+++ b/src/Syntax/Tokenization/LiteralToken.cs
@@ -1,4 +1,4 @@
-namespace 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
index 6cce6c6..5312667 100644
--- a/src/Syntax/Tokenization/ModifierToken.cs
+++ b/src/Syntax/Tokenization/ModifierToken.cs
@@ -1,4 +1,4 @@
-namespace 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
index 917e6f2..af31ca0 100644
--- a/src/Syntax/Tokenization/SymbolToken.cs
+++ b/src/Syntax/Tokenization/SymbolToken.cs
@@ -1,4 +1,4 @@
-namespace 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
index 77ca346..89f3f47 100644
--- a/src/Syntax/Tokenization/Token.cs
+++ b/src/Syntax/Tokenization/Token.cs
@@ -1,4 +1,4 @@
-namespace 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
index 4858e4b..c8db68e 100644
--- a/src/Syntax/Tokenization/Tokenizer.cs
+++ b/src/Syntax/Tokenization/Tokenizer.cs
@@ -1,7 +1,7 @@
-using common;
-using syntax.Diagnostics;
+using Common;
+using Syntax.Diagnostics;
-namespace syntax.Tokenization;
+namespace Syntax.Tokenization;
public static class Tokenizer
{
diff --git a/src/Syntax/Typing/NubType.cs b/src/Syntax/Typing/NubType.cs
index 6428088..d74204a 100644
--- a/src/Syntax/Typing/NubType.cs
+++ b/src/Syntax/Typing/NubType.cs
@@ -1,6 +1,6 @@
using System.Diagnostics.CodeAnalysis;
-namespace syntax.Typing;
+namespace Syntax.Typing;
public abstract class NubType
{
diff --git a/src/Syntax/Typing/TypeChecker.cs b/src/Syntax/Typing/TypeChecker.cs
index 5963137..09426f0 100644
--- a/src/Syntax/Typing/TypeChecker.cs
+++ b/src/Syntax/Typing/TypeChecker.cs
@@ -1,12 +1,12 @@
using System.Diagnostics;
-using syntax.Diagnostics;
-using syntax.Parsing;
-using syntax.Parsing.Definitions;
-using syntax.Parsing.Expressions;
-using syntax.Parsing.Statements;
-using syntax.Tokenization;
+using Syntax.Diagnostics;
+using Syntax.Parsing;
+using Syntax.Parsing.Definitions;
+using Syntax.Parsing.Expressions;
+using Syntax.Parsing.Statements;
+using Syntax.Tokenization;
-namespace syntax.Typing;
+namespace Syntax.Typing;
public static class TypeChecker
{