From 626a3ffa06480367df4a26502a04b4ef9aa57a9c Mon Sep 17 00:00:00 2001 From: nub31 Date: Thu, 16 Oct 2025 20:10:19 +0200 Subject: [PATCH] Clean up examples --- compiler/NubLang/Generation/Generator.cs | 22 ++++++++++++++------- examples/array/.gitignore | 3 --- examples/array/main.nub | 6 ------ examples/array/makefile | 15 -------------- examples/array/x86_64.s | 10 ---------- examples/hello-world/main.nub | 25 ------------------------ 6 files changed, 15 insertions(+), 66 deletions(-) delete mode 100644 examples/array/.gitignore delete mode 100644 examples/array/main.nub delete mode 100644 examples/array/makefile delete mode 100644 examples/array/x86_64.s diff --git a/compiler/NubLang/Generation/Generator.cs b/compiler/NubLang/Generation/Generator.cs index 84e1c66..392254b 100644 --- a/compiler/NubLang/Generation/Generator.cs +++ b/compiler/NubLang/Generation/Generator.cs @@ -292,16 +292,24 @@ public class Generator else { var returnValue = EmitExpression(returnNode.Value); - var tmp = NewTmp(); - _writer.WriteLine($"{MapType(returnNode.Value.Type)} {tmp} = {returnValue};"); - var blockDefers = _deferStack.Peek(); - for (var i = blockDefers.Count - 1; i >= 0; i--) + if (_deferStack.Peek().Count != 0) { - EmitStatement(blockDefers[i].Statement); - } + var tmp = NewTmp(); + _writer.WriteLine($"{MapType(returnNode.Value.Type)} {tmp} = {returnValue};"); - _writer.WriteLine($"return {tmp};"); + var blockDefers = _deferStack.Peek(); + for (var i = blockDefers.Count - 1; i >= 0; i--) + { + EmitStatement(blockDefers[i].Statement); + } + + _writer.WriteLine($"return {tmp};"); + } + else + { + _writer.WriteLine($"return {returnValue};"); + } } } diff --git a/examples/array/.gitignore b/examples/array/.gitignore deleted file mode 100644 index a8b1f05..0000000 --- a/examples/array/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.build -out.a -out \ No newline at end of file diff --git a/examples/array/main.nub b/examples/array/main.nub deleted file mode 100644 index 23a0b21..0000000 --- a/examples/array/main.nub +++ /dev/null @@ -1,6 +0,0 @@ -module "main" - -extern "main" func main(args: []cstring): i64 -{ - return 0 -} \ No newline at end of file diff --git a/examples/array/makefile b/examples/array/makefile deleted file mode 100644 index df44fc1..0000000 --- a/examples/array/makefile +++ /dev/null @@ -1,15 +0,0 @@ -NUBC = ../../compiler/NubLang.CLI/bin/Debug/net9.0/nubc - -out: .build/out.o - gcc -nostartfiles -o out x86_64.s .build/out.o - -.build/out.o: $(NUBC) main.nub - $(NUBC) main.nub - -.PHONY: $(NUBC) -$(NUBC): - dotnet build ../../compiler/NubLang.CLI/NubLang.CLI.csproj - -clean: - @rm -r .build 2>/dev/null || true - @rm out 2>/dev/null || true diff --git a/examples/array/x86_64.s b/examples/array/x86_64.s deleted file mode 100644 index f55a1d0..0000000 --- a/examples/array/x86_64.s +++ /dev/null @@ -1,10 +0,0 @@ -.intel_syntax noprefix - -.text -.globl _start -_start: - mov rdi, rsp - call main - mov rdi, rax - mov rax, 60 - syscall diff --git a/examples/hello-world/main.nub b/examples/hello-world/main.nub index f5227e6..e7e895b 100644 --- a/examples/hello-world/main.nub +++ b/examples/hello-world/main.nub @@ -2,33 +2,8 @@ module "main" extern "puts" func puts(text: cstring) -struct Human -{ - name: cstring - - func print() - { - puts("human") - } -} - extern "main" func main(args: []cstring): i64 { puts("test") - let test: Human = { - name = "uwu" - } - - if false - { - puts("uwu") - } - - while true - { - puts("count") - } - - test.print() return 0 } \ No newline at end of file