This commit is contained in:
nub31
2025-10-17 23:39:13 +02:00
parent 1fdeb60eb5
commit 0bd52298fb
11 changed files with 32 additions and 186 deletions

View File

@@ -28,8 +28,6 @@ var moduleRepository = new ModuleRepository(syntaxTrees);
var definitions = new List<DefinitionNode>();
var referencedStructTypes = new HashSet<NubStructType>();
foreach (var syntaxTree in syntaxTrees)
{
var typeChecker = new TypeChecker(syntaxTree, moduleRepository);
@@ -37,11 +35,6 @@ foreach (var syntaxTree in syntaxTrees)
definitions.AddRange(typeChecker.Definitions);
diagnostics.AddRange(typeChecker.Diagnostics);
foreach (var structType in typeChecker.ReferencedStructTypes)
{
referencedStructTypes.Add(structType);
}
}
foreach (var diagnostic in diagnostics)
@@ -56,7 +49,7 @@ if (diagnostics.Any(diagnostic => diagnostic.Severity == DiagnosticSeverity.Erro
Directory.CreateDirectory(".build");
var generator = new Generator(definitions, referencedStructTypes);
var generator = new Generator(definitions);
var c = generator.Emit();
var cFilePath = Path.Combine(".build", "out.c");
@@ -91,10 +84,10 @@ if (moduleRepository.Modules().TryGetValue("main", out var mainModule))
.text
.globl _start
_start:
mov rdi, [rsp + 8] # Pass stack pointer to main (argv-like)
mov rdi, rsp # Pass stack pointer to main (length + cstring pointers)
call {mainFunction.ExternSymbol}
mov rdi, rax # Move return value into rdi
mov rax, 60 # syscall: exit
mov rdi, rax # Move return value into rdi
mov rax, 60 # syscall: exit
syscall
""";