From b59ca29792ce2f6b48c2420e37a2a5b614a20f37 Mon Sep 17 00:00:00 2001 From: nub31 Date: Wed, 22 Oct 2025 22:17:54 +0200 Subject: [PATCH] ... --- compiler/NubLang/Diagnostics/Diagnostic.cs | 2 ++ compiler/NubLang/Generation/Generator.cs | 8 ++------ examples/hello-world/main.nub | 16 +++++++++++----- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/compiler/NubLang/Diagnostics/Diagnostic.cs b/compiler/NubLang/Diagnostics/Diagnostic.cs index fd940b4..bf3cf54 100644 --- a/compiler/NubLang/Diagnostics/Diagnostic.cs +++ b/compiler/NubLang/Diagnostics/Diagnostic.cs @@ -290,6 +290,8 @@ public class Diagnostic case Symbol.Struct: case Symbol.Let: case Symbol.Extern: + case Symbol.For: + case Symbol.In: { return ConsoleColors.Colorize(tokenText, ConsoleColors.Bold + ConsoleColors.Blue); } diff --git a/compiler/NubLang/Generation/Generator.cs b/compiler/NubLang/Generation/Generator.cs index f88b46b..20a41a5 100644 --- a/compiler/NubLang/Generation/Generator.cs +++ b/compiler/NubLang/Generation/Generator.cs @@ -388,9 +388,7 @@ public class Generator } var arrayType = (NubArrayType)arrayInitializerNode.Type; - var tmp = NewTmp(); - _writer.WriteLine($"{CType.Create(arrayType.ElementType)} {tmp}[] = {{{string.Join(", ", values)}}};"); - return tmp; + return $"({CType.Create(arrayType.ElementType)}[]){{{string.Join(", ", values)}}}"; } private string EmitBinaryExpression(BinaryExpressionNode binaryExpressionNode) @@ -441,9 +439,7 @@ public class Generator } var arrayType = (NubConstArrayType)arrayInitializerNode.Type; - var tmp = NewTmp(); - _writer.WriteLine($"{CType.Create(arrayType.ElementType)} {tmp}[{arrayType.Size}] = {{{string.Join(", ", values)}}};"); - return tmp; + return $"({CType.Create(arrayType.ElementType)}[{arrayType.Size}]){{{string.Join(", ", values)}}}"; } private string EmitConstArrayToSlice(ConstArrayToSliceNode constArrayToSliceNode) diff --git a/examples/hello-world/main.nub b/examples/hello-world/main.nub index 5cab1ab..0cf80f4 100644 --- a/examples/hello-world/main.nub +++ b/examples/hello-world/main.nub @@ -2,16 +2,22 @@ module "main" extern "puts" func puts(text: cstring) +struct X +{ + points: []i32 +} + extern "main" func main(argc: i64, argv: [?]cstring): i64 { - let names: []cstring = ["test", "test2"] + let f: []cstring = ["1", "2", "3"] - puts(names[0]) - puts(names[1]) + puts(f[0]) + puts(f[1]) + puts(f[2]) - for name, i in names + for num in f { - puts(name) + puts(num) } return 0