This commit is contained in:
nub31
2025-10-22 22:17:54 +02:00
parent caacf3d402
commit b59ca29792
3 changed files with 15 additions and 11 deletions

View File

@@ -290,6 +290,8 @@ public class Diagnostic
case Symbol.Struct: case Symbol.Struct:
case Symbol.Let: case Symbol.Let:
case Symbol.Extern: case Symbol.Extern:
case Symbol.For:
case Symbol.In:
{ {
return ConsoleColors.Colorize(tokenText, ConsoleColors.Bold + ConsoleColors.Blue); return ConsoleColors.Colorize(tokenText, ConsoleColors.Bold + ConsoleColors.Blue);
} }

View File

@@ -388,9 +388,7 @@ public class Generator
} }
var arrayType = (NubArrayType)arrayInitializerNode.Type; var arrayType = (NubArrayType)arrayInitializerNode.Type;
var tmp = NewTmp(); return $"({CType.Create(arrayType.ElementType)}[]){{{string.Join(", ", values)}}}";
_writer.WriteLine($"{CType.Create(arrayType.ElementType)} {tmp}[] = {{{string.Join(", ", values)}}};");
return tmp;
} }
private string EmitBinaryExpression(BinaryExpressionNode binaryExpressionNode) private string EmitBinaryExpression(BinaryExpressionNode binaryExpressionNode)
@@ -441,9 +439,7 @@ public class Generator
} }
var arrayType = (NubConstArrayType)arrayInitializerNode.Type; var arrayType = (NubConstArrayType)arrayInitializerNode.Type;
var tmp = NewTmp(); return $"({CType.Create(arrayType.ElementType)}[{arrayType.Size}]){{{string.Join(", ", values)}}}";
_writer.WriteLine($"{CType.Create(arrayType.ElementType)} {tmp}[{arrayType.Size}] = {{{string.Join(", ", values)}}};");
return tmp;
} }
private string EmitConstArrayToSlice(ConstArrayToSliceNode constArrayToSliceNode) private string EmitConstArrayToSlice(ConstArrayToSliceNode constArrayToSliceNode)

View File

@@ -2,16 +2,22 @@ module "main"
extern "puts" func puts(text: cstring) extern "puts" func puts(text: cstring)
struct X
{
points: []i32
}
extern "main" func main(argc: i64, argv: [?]cstring): i64 extern "main" func main(argc: i64, argv: [?]cstring): i64
{ {
let names: []cstring = ["test", "test2"] let f: []cstring = ["1", "2", "3"]
puts(names[0]) puts(f[0])
puts(names[1]) puts(f[1])
puts(f[2])
for name, i in names for num in f
{ {
puts(name) puts(num)
} }
return 0 return 0