Clean up examples
This commit is contained in:
@@ -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};");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
3
examples/array/.gitignore
vendored
3
examples/array/.gitignore
vendored
@@ -1,3 +0,0 @@
|
||||
.build
|
||||
out.a
|
||||
out
|
||||
@@ -1,6 +0,0 @@
|
||||
module "main"
|
||||
|
||||
extern "main" func main(args: []cstring): i64
|
||||
{
|
||||
return 0
|
||||
}
|
||||
@@ -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
|
||||
@@ -1,10 +0,0 @@
|
||||
.intel_syntax noprefix
|
||||
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
mov rdi, rsp
|
||||
call main
|
||||
mov rdi, rax
|
||||
mov rax, 60
|
||||
syscall
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user