This commit is contained in:
nub31
2025-10-22 20:16:50 +02:00
parent 1fb88f2073
commit caacf3d402
7 changed files with 169 additions and 43 deletions

View File

@@ -609,10 +609,18 @@ public sealed class Parser
private ExpressionSyntax ParseArrayInitializer(int startIndex)
{
var capacity = ParseExpression();
ExpectSymbol(Symbol.CloseBracket);
var type = ParseType();
return new ArrayInitializerSyntax(GetTokens(startIndex), capacity, type);
var values = new List<ExpressionSyntax>();
while (!TryExpectSymbol(Symbol.CloseBracket))
{
values.Add(ParseExpression());
if (!TryExpectSymbol(Symbol.Comma))
{
ExpectSymbol(Symbol.CloseBracket);
break;
}
}
return new ArrayInitializerSyntax(GetTokens(startIndex), values);
}
private StructInitializerSyntax ParseStructInitializer(int startIndex)

View File

@@ -92,7 +92,7 @@ public record LocalIdentifierSyntax(List<Token> Tokens, string Name) : Expressio
public record ModuleIdentifierSyntax(List<Token> Tokens, string Module, string Name) : ExpressionSyntax(Tokens);
public record ArrayInitializerSyntax(List<Token> Tokens, ExpressionSyntax Capacity, TypeSyntax ElementType) : ExpressionSyntax(Tokens);
public record ArrayInitializerSyntax(List<Token> Tokens, List<ExpressionSyntax> Values) : ExpressionSyntax(Tokens);
public record ArrayIndexAccessSyntax(List<Token> Tokens, ExpressionSyntax Target, ExpressionSyntax Index) : ExpressionSyntax(Tokens);