diff --git a/.gitignore b/.gitignore
index c1b9796..b8442bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-src/tools/syntax-highlighting/out
+tools/syntax-highlighting/out
bin
bin-int
diff --git a/build.sh b/build.sh
index 36086ba..4799dcf 100755
--- a/build.sh
+++ b/build.sh
@@ -1,2 +1,2 @@
#!/bin/bash
-dotnet run --project src/lang/Nub.Lang.CLI/ example
\ No newline at end of file
+dotnet run --project src/Nub.Lang.CLI/ example
\ No newline at end of file
diff --git a/src/lang/.gitignore b/src/.gitignore
similarity index 100%
rename from src/lang/.gitignore
rename to src/.gitignore
diff --git a/src/lang/.idea/.idea.Nub.Lang/.idea/.gitignore b/src/.idea/.idea.Nub.Lang/.idea/.gitignore
similarity index 100%
rename from src/lang/.idea/.idea.Nub.Lang/.idea/.gitignore
rename to src/.idea/.idea.Nub.Lang/.idea/.gitignore
diff --git a/src/lang/.idea/.idea.Nub.Lang/.idea/.name b/src/.idea/.idea.Nub.Lang/.idea/.name
similarity index 100%
rename from src/lang/.idea/.idea.Nub.Lang/.idea/.name
rename to src/.idea/.idea.Nub.Lang/.idea/.name
diff --git a/src/lang/.idea/.idea.Nub.Lang/.idea/codeStyles/codeStyleConfig.xml b/src/.idea/.idea.Nub.Lang/.idea/codeStyles/codeStyleConfig.xml
similarity index 100%
rename from src/lang/.idea/.idea.Nub.Lang/.idea/codeStyles/codeStyleConfig.xml
rename to src/.idea/.idea.Nub.Lang/.idea/codeStyles/codeStyleConfig.xml
diff --git a/src/lang/.idea/.idea.Nub.Lang/.idea/encodings.xml b/src/.idea/.idea.Nub.Lang/.idea/encodings.xml
similarity index 100%
rename from src/lang/.idea/.idea.Nub.Lang/.idea/encodings.xml
rename to src/.idea/.idea.Nub.Lang/.idea/encodings.xml
diff --git a/src/lang/.idea/.idea.Nub.Lang/.idea/indexLayout.xml b/src/.idea/.idea.Nub.Lang/.idea/indexLayout.xml
similarity index 100%
rename from src/lang/.idea/.idea.Nub.Lang/.idea/indexLayout.xml
rename to src/.idea/.idea.Nub.Lang/.idea/indexLayout.xml
diff --git a/src/lang/.idea/.idea.Nub.Lang/.idea/vcs.xml b/src/.idea/.idea.Nub.Lang/.idea/vcs.xml
similarity index 73%
rename from src/lang/.idea/.idea.Nub.Lang/.idea/vcs.xml
rename to src/.idea/.idea.Nub.Lang/.idea/vcs.xml
index b2bdec2..64713b8 100644
--- a/src/lang/.idea/.idea.Nub.Lang/.idea/vcs.xml
+++ b/src/.idea/.idea.Nub.Lang/.idea/vcs.xml
@@ -2,5 +2,6 @@
+
\ No newline at end of file
diff --git a/src/lang/Nub.Lang.CLI/Nub.Lang.CLI.csproj b/src/Nub.Lang.CLI/Nub.Lang.CLI.csproj
similarity index 58%
rename from src/lang/Nub.Lang.CLI/Nub.Lang.CLI.csproj
rename to src/Nub.Lang.CLI/Nub.Lang.CLI.csproj
index e9b75dd..d5213cd 100644
--- a/src/lang/Nub.Lang.CLI/Nub.Lang.CLI.csproj
+++ b/src/Nub.Lang.CLI/Nub.Lang.CLI.csproj
@@ -13,4 +13,12 @@
+
+
+
+
+
+
+
+
diff --git a/src/lang/Nub.Lang.CLI/Program.cs b/src/Nub.Lang.CLI/Program.cs
similarity index 79%
rename from src/lang/Nub.Lang.CLI/Program.cs
rename to src/Nub.Lang.CLI/Program.cs
index 944d1ac..23df91a 100644
--- a/src/lang/Nub.Lang.CLI/Program.cs
+++ b/src/Nub.Lang.CLI/Program.cs
@@ -1,4 +1,5 @@
using System.Diagnostics;
+using System.Reflection;
using Nub.Lang;
using Nub.Lang.Frontend;
using Nub.Lang.Frontend.Generation;
@@ -105,40 +106,44 @@ foreach (var compilationUnit in compilationUnits)
catch (Exception ex)
{
Console.Error.WriteLine($"Error processing {sourceTexts[compilationUnit].Path}: {ex.Message}");
- error = true;
+ return 1;
}
}
-if (error)
-{
- return 1;
-}
+var assembly = Assembly.GetExecutingAssembly();
+var runtimeResources = assembly.GetManifestResourceNames().Where(name => name.EndsWith(".s", StringComparison.OrdinalIgnoreCase));
-const string RUNTIME_DIR = "src/runtime";
-if (Directory.Exists(RUNTIME_DIR))
+foreach (var resourceName in runtimeResources)
{
- foreach (var runtimeFile in Directory.EnumerateFiles(RUNTIME_DIR, "*.s", SearchOption.AllDirectories))
+ try
{
- try
+ await using var stream = assembly.GetManifestResourceStream(resourceName);
+ if (stream == null)
{
- var runtimeFileName = Path.GetFileNameWithoutExtension(runtimeFile);
- var objPath = Path.Combine(BIN_INT_DIR, $"runtime_{runtimeFileName}.o");
-
- await InvokeAssembler(runtimeFile, objPath);
- objectFiles.Add(objPath);
- Console.Out.WriteLine($"Runtime assembled: {objPath}");
+ Console.Error.WriteLine($"Warning: Could not load embedded resource {resourceName}");
+ continue;
}
- catch (Exception ex)
- {
- Console.Error.WriteLine($"Error assembling runtime file {runtimeFile}: {ex.Message}");
- error = true;
- }
- }
-}
-if (error)
-{
- return 1;
+ using var reader = new StreamReader(stream);
+ var assemblyCode = await reader.ReadToEndAsync();
+
+ var fileName = resourceName.Split('.').Reverse().Skip(1).First();
+ var asmPath = Path.Combine(BIN_INT_DIR, $"runtime_{fileName}.s");
+ var objPath = Path.Combine(BIN_INT_DIR, $"runtime_{fileName}.o");
+
+ await File.WriteAllTextAsync(asmPath, assemblyCode);
+
+ await InvokeAssembler(asmPath, objPath);
+ objectFiles.Add(objPath);
+ Console.Out.WriteLine($"Runtime assembled: {objPath}");
+
+ File.Delete(asmPath);
+ }
+ catch (Exception ex)
+ {
+ Console.Error.WriteLine($"Error processing runtime resource {resourceName}: {ex.Message}");
+ return 1;
+ }
}
try
@@ -206,7 +211,7 @@ static async Task InvokeAssembler(string asmPath, string objPath)
if (asProcess.ExitCode != 0)
{
- throw new Exception($"Assembler failed for {asmPath}:\n{asErrors}");
+ throw new Exception($"Assembler errors:\n{asErrors}");
}
}
@@ -230,6 +235,6 @@ static async Task InvokeLinker(List objectFiles, string outputPath)
if (gccProcess.ExitCode != 0)
{
- throw new Exception($"Linker failed:\n{gccErrors}");
+ throw new Exception($"Linker errors:\n{gccErrors}");
}
}
\ No newline at end of file
diff --git a/src/runtime/baseline/entry.s b/src/Nub.Lang.CLI/Runtime/entry.s
similarity index 100%
rename from src/runtime/baseline/entry.s
rename to src/Nub.Lang.CLI/Runtime/entry.s
diff --git a/src/runtime/baseline/nub_memcpy.s b/src/Nub.Lang.CLI/Runtime/nub_memcpy.s
similarity index 100%
rename from src/runtime/baseline/nub_memcpy.s
rename to src/Nub.Lang.CLI/Runtime/nub_memcpy.s
diff --git a/src/runtime/baseline/nub_memset.s b/src/Nub.Lang.CLI/Runtime/nub_memset.s
similarity index 100%
rename from src/runtime/baseline/nub_memset.s
rename to src/Nub.Lang.CLI/Runtime/nub_memset.s
diff --git a/src/runtime/baseline/nub_panic.s b/src/Nub.Lang.CLI/Runtime/nub_panic.s
similarity index 100%
rename from src/runtime/baseline/nub_panic.s
rename to src/Nub.Lang.CLI/Runtime/nub_panic.s
diff --git a/src/runtime/baseline/nub_strcmp.s b/src/Nub.Lang.CLI/Runtime/nub_strcmp.s
similarity index 100%
rename from src/runtime/baseline/nub_strcmp.s
rename to src/Nub.Lang.CLI/Runtime/nub_strcmp.s
diff --git a/src/lang/Nub.Lang.sln b/src/Nub.Lang.sln
similarity index 100%
rename from src/lang/Nub.Lang.sln
rename to src/Nub.Lang.sln
diff --git a/src/lang/Nub.Lang/Diagnostics/ConsoleColors.cs b/src/Nub.Lang/Diagnostics/ConsoleColors.cs
similarity index 100%
rename from src/lang/Nub.Lang/Diagnostics/ConsoleColors.cs
rename to src/Nub.Lang/Diagnostics/ConsoleColors.cs
diff --git a/src/lang/Nub.Lang/Diagnostics/Diagnostic.cs b/src/Nub.Lang/Diagnostics/Diagnostic.cs
similarity index 100%
rename from src/lang/Nub.Lang/Diagnostics/Diagnostic.cs
rename to src/Nub.Lang/Diagnostics/Diagnostic.cs
diff --git a/src/lang/Nub.Lang/Diagnostics/DiagnosticsResult.cs b/src/Nub.Lang/Diagnostics/DiagnosticsResult.cs
similarity index 100%
rename from src/lang/Nub.Lang/Diagnostics/DiagnosticsResult.cs
rename to src/Nub.Lang/Diagnostics/DiagnosticsResult.cs
diff --git a/src/lang/Nub.Lang/Frontend/DefinitionTable.cs b/src/Nub.Lang/Frontend/DefinitionTable.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/DefinitionTable.cs
rename to src/Nub.Lang/Frontend/DefinitionTable.cs
diff --git a/src/lang/Nub.Lang/Frontend/Generation/QBEGenerator.cs b/src/Nub.Lang/Frontend/Generation/QBEGenerator.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Generation/QBEGenerator.cs
rename to src/Nub.Lang/Frontend/Generation/QBEGenerator.cs
diff --git a/src/lang/Nub.Lang/Frontend/Lexing/DocumentationToken.cs b/src/Nub.Lang/Frontend/Lexing/DocumentationToken.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Lexing/DocumentationToken.cs
rename to src/Nub.Lang/Frontend/Lexing/DocumentationToken.cs
diff --git a/src/lang/Nub.Lang/Frontend/Lexing/IdentifierToken.cs b/src/Nub.Lang/Frontend/Lexing/IdentifierToken.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Lexing/IdentifierToken.cs
rename to src/Nub.Lang/Frontend/Lexing/IdentifierToken.cs
diff --git a/src/lang/Nub.Lang/Frontend/Lexing/Lexer.cs b/src/Nub.Lang/Frontend/Lexing/Lexer.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Lexing/Lexer.cs
rename to src/Nub.Lang/Frontend/Lexing/Lexer.cs
diff --git a/src/lang/Nub.Lang/Frontend/Lexing/LiteralToken.cs b/src/Nub.Lang/Frontend/Lexing/LiteralToken.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Lexing/LiteralToken.cs
rename to src/Nub.Lang/Frontend/Lexing/LiteralToken.cs
diff --git a/src/lang/Nub.Lang/Frontend/Lexing/ModifierToken.cs b/src/Nub.Lang/Frontend/Lexing/ModifierToken.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Lexing/ModifierToken.cs
rename to src/Nub.Lang/Frontend/Lexing/ModifierToken.cs
diff --git a/src/lang/Nub.Lang/Frontend/Lexing/SymbolToken.cs b/src/Nub.Lang/Frontend/Lexing/SymbolToken.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Lexing/SymbolToken.cs
rename to src/Nub.Lang/Frontend/Lexing/SymbolToken.cs
diff --git a/src/lang/Nub.Lang/Frontend/Lexing/Token.cs b/src/Nub.Lang/Frontend/Lexing/Token.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Lexing/Token.cs
rename to src/Nub.Lang/Frontend/Lexing/Token.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/CompilationUnit.cs b/src/Nub.Lang/Frontend/Parsing/CompilationUnit.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/CompilationUnit.cs
rename to src/Nub.Lang/Frontend/Parsing/CompilationUnit.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Definitions/DefinitionNode.cs b/src/Nub.Lang/Frontend/Parsing/Definitions/DefinitionNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Definitions/DefinitionNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Definitions/DefinitionNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Definitions/FuncDefinitionNode.cs b/src/Nub.Lang/Frontend/Parsing/Definitions/FuncDefinitionNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Definitions/FuncDefinitionNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Definitions/FuncDefinitionNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Definitions/StructDefinitionNode.cs b/src/Nub.Lang/Frontend/Parsing/Definitions/StructDefinitionNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Definitions/StructDefinitionNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Definitions/StructDefinitionNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/AddressOfNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/AddressOfNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/AddressOfNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/AddressOfNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/AnonymousFuncNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/AnonymousFuncNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/AnonymousFuncNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/AnonymousFuncNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/ArrayIndexAccessNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/ArrayIndexAccessNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/ArrayIndexAccessNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/ArrayIndexAccessNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/ArrayInitializerNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/ArrayInitializerNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/ArrayInitializerNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/ArrayInitializerNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/BinaryExpressionNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/BinaryExpressionNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/BinaryExpressionNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/BinaryExpressionNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/DereferenceNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/DereferenceNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/DereferenceNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/DereferenceNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/ExpressionNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/ExpressionNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/ExpressionNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/ExpressionNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/FixedArrayInitializerNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/FixedArrayInitializerNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/FixedArrayInitializerNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/FixedArrayInitializerNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/FuncCallNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/FuncCallNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/FuncCallNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/FuncCallNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/IdentifierNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/IdentifierNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/IdentifierNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/IdentifierNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/LiteralNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/LiteralNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/LiteralNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/LiteralNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/MemberAccessNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/MemberAccessNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/MemberAccessNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/MemberAccessNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/StructInitializerNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/StructInitializerNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/StructInitializerNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/StructInitializerNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Expressions/UnaryExpressionNode.cs b/src/Nub.Lang/Frontend/Parsing/Expressions/UnaryExpressionNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Expressions/UnaryExpressionNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Expressions/UnaryExpressionNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Node.cs b/src/Nub.Lang/Frontend/Parsing/Node.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Node.cs
rename to src/Nub.Lang/Frontend/Parsing/Node.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Parser.cs b/src/Nub.Lang/Frontend/Parsing/Parser.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Parser.cs
rename to src/Nub.Lang/Frontend/Parsing/Parser.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Statements/ArrayIndexAssignmentNode.cs b/src/Nub.Lang/Frontend/Parsing/Statements/ArrayIndexAssignmentNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Statements/ArrayIndexAssignmentNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Statements/ArrayIndexAssignmentNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Statements/BlockNode.cs b/src/Nub.Lang/Frontend/Parsing/Statements/BlockNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Statements/BlockNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Statements/BlockNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Statements/BreakNode.cs b/src/Nub.Lang/Frontend/Parsing/Statements/BreakNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Statements/BreakNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Statements/BreakNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Statements/ContinueNode.cs b/src/Nub.Lang/Frontend/Parsing/Statements/ContinueNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Statements/ContinueNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Statements/ContinueNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Statements/DereferenceAssignmentNode.cs b/src/Nub.Lang/Frontend/Parsing/Statements/DereferenceAssignmentNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Statements/DereferenceAssignmentNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Statements/DereferenceAssignmentNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Statements/IfNode.cs b/src/Nub.Lang/Frontend/Parsing/Statements/IfNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Statements/IfNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Statements/IfNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Statements/MemberAssignmentNode.cs b/src/Nub.Lang/Frontend/Parsing/Statements/MemberAssignmentNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Statements/MemberAssignmentNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Statements/MemberAssignmentNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Statements/ReturnNode.cs b/src/Nub.Lang/Frontend/Parsing/Statements/ReturnNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Statements/ReturnNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Statements/ReturnNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Statements/StatementExpressionNode.cs b/src/Nub.Lang/Frontend/Parsing/Statements/StatementExpressionNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Statements/StatementExpressionNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Statements/StatementExpressionNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Statements/StatementNode.cs b/src/Nub.Lang/Frontend/Parsing/Statements/StatementNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Statements/StatementNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Statements/StatementNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Statements/VariableAssignmentNode.cs b/src/Nub.Lang/Frontend/Parsing/Statements/VariableAssignmentNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Statements/VariableAssignmentNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Statements/VariableAssignmentNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Statements/VariableDeclarationNode.cs b/src/Nub.Lang/Frontend/Parsing/Statements/VariableDeclarationNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Statements/VariableDeclarationNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Statements/VariableDeclarationNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Parsing/Statements/WhileNode.cs b/src/Nub.Lang/Frontend/Parsing/Statements/WhileNode.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Parsing/Statements/WhileNode.cs
rename to src/Nub.Lang/Frontend/Parsing/Statements/WhileNode.cs
diff --git a/src/lang/Nub.Lang/Frontend/Typing/NubType.cs b/src/Nub.Lang/Frontend/Typing/NubType.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Typing/NubType.cs
rename to src/Nub.Lang/Frontend/Typing/NubType.cs
diff --git a/src/lang/Nub.Lang/Frontend/Typing/TypeChecker.cs b/src/Nub.Lang/Frontend/Typing/TypeChecker.cs
similarity index 100%
rename from src/lang/Nub.Lang/Frontend/Typing/TypeChecker.cs
rename to src/Nub.Lang/Frontend/Typing/TypeChecker.cs
diff --git a/src/lang/Nub.Lang/Nub.Lang.csproj b/src/Nub.Lang/Nub.Lang.csproj
similarity index 100%
rename from src/lang/Nub.Lang/Nub.Lang.csproj
rename to src/Nub.Lang/Nub.Lang.csproj
diff --git a/src/lang/Nub.Lang/Optional.cs b/src/Nub.Lang/Optional.cs
similarity index 100%
rename from src/lang/Nub.Lang/Optional.cs
rename to src/Nub.Lang/Optional.cs
diff --git a/src/lang/Nub.Lang/Source.cs b/src/Nub.Lang/Source.cs
similarity index 100%
rename from src/lang/Nub.Lang/Source.cs
rename to src/Nub.Lang/Source.cs
diff --git a/src/lang/Nub.Lang/Variant.cs b/src/Nub.Lang/Variant.cs
similarity index 100%
rename from src/lang/Nub.Lang/Variant.cs
rename to src/Nub.Lang/Variant.cs
diff --git a/src/runtime/core/syscall.s b/src/runtime/core/syscall.s
deleted file mode 100644
index d68df95..0000000
--- a/src/runtime/core/syscall.s
+++ /dev/null
@@ -1,11 +0,0 @@
-.intel_syntax noprefix
-.global core_syscall
-.section .text
-
-core_syscall:
- mov rax, rdi
- mov rdi, rsi
- mov rsi, rdx
- mov r10, rcx
- syscall
- ret
diff --git a/src/tools/syntax-highlighting/build.sh b/tools/syntax-highlighting/build.sh
similarity index 100%
rename from src/tools/syntax-highlighting/build.sh
rename to tools/syntax-highlighting/build.sh
diff --git a/src/tools/syntax-highlighting/language-configuration.json b/tools/syntax-highlighting/language-configuration.json
similarity index 100%
rename from src/tools/syntax-highlighting/language-configuration.json
rename to tools/syntax-highlighting/language-configuration.json
diff --git a/src/tools/syntax-highlighting/package.json b/tools/syntax-highlighting/package.json
similarity index 100%
rename from src/tools/syntax-highlighting/package.json
rename to tools/syntax-highlighting/package.json
diff --git a/src/tools/syntax-highlighting/syntaxes/nub.tmLanguage.json b/tools/syntax-highlighting/syntaxes/nub.tmLanguage.json
similarity index 100%
rename from src/tools/syntax-highlighting/syntaxes/nub.tmLanguage.json
rename to tools/syntax-highlighting/syntaxes/nub.tmLanguage.json