Small refactoring

This commit is contained in:
nub31
2025-08-18 13:47:53 +02:00
parent c07dba2fa7
commit ce78fb4d30
2 changed files with 23 additions and 39 deletions

View File

@@ -1247,15 +1247,10 @@ public class QBEGenerator
return (offset + alignment - 1) & ~(alignment - 1);
}
private int OffsetOf(StructNode structDef, string member)
private static int OffsetOf(StructNode structDef, string member)
{
var offset = 0;
// if (structDef.InterfaceImplementations.Any())
// {
// offset = 8;
// }
foreach (var field in structDef.Fields)
{
if (field.Name == member)

View File

@@ -75,16 +75,12 @@ public sealed class Parser
while (!TryExpectSymbol(Symbol.CloseParen))
{
var parameter = ParseFuncParameter();
parameters.Add(parameter);
parameters.Add(ParseFuncParameter());
if (!TryExpectSymbol(Symbol.Comma) && CurrentToken is not SymbolToken { Symbol: Symbol.CloseParen })
if (!TryExpectSymbol(Symbol.Comma))
{
_diagnostics.Add(Diagnostic
.Warning("Missing comma between function parameters")
.WithHelp("Add a ',' to separate parameters")
.At(CurrentToken)
.Build());
ExpectSymbol(Symbol.CloseParen);
break;
}
}
@@ -491,17 +487,14 @@ public sealed class Parser
if (TryExpectSymbol(Symbol.OpenParen))
{
var parameters = new List<ExpressionSyntax>();
while (!TryExpectSymbol(Symbol.CloseParen))
{
var parameter = ParseExpression();
parameters.Add(parameter);
if (!TryExpectSymbol(Symbol.Comma) && CurrentToken is not SymbolToken { Symbol: Symbol.CloseParen })
parameters.Add(ParseExpression());
if (!TryExpectSymbol(Symbol.Comma))
{
_diagnostics.Add(Diagnostic
.Warning("Missing comma between function arguments")
.WithHelp("Add a ',' to separate arguments")
.At(CurrentToken)
.Build());
ExpectSymbol(Symbol.CloseParen);
break;
}
}
@@ -524,17 +517,14 @@ public sealed class Parser
if (TryExpectSymbol(Symbol.OpenParen))
{
var parameters = new List<ExpressionSyntax>();
while (!TryExpectSymbol(Symbol.CloseParen))
{
var parameter = ParseExpression();
parameters.Add(parameter);
if (!TryExpectSymbol(Symbol.Comma) && CurrentToken is not SymbolToken { Symbol: Symbol.CloseParen })
parameters.Add(ParseExpression());
if (!TryExpectSymbol(Symbol.Comma))
{
_diagnostics.Add(Diagnostic
.Warning("Missing comma between function arguments")
.WithHelp("Add a ',' to separate arguments")
.At(CurrentToken)
.Build());
ExpectSymbol(Symbol.CloseParen);
break;
}
}
@@ -635,22 +625,21 @@ public sealed class Parser
if (TryExpectSymbol(Symbol.Func))
{
ExpectSymbol(Symbol.OpenParen);
List<TypeSyntax> parameters = [];
while (!TryExpectSymbol(Symbol.CloseParen))
{
var parameter = ParseType();
parameters.Add(parameter);
if (!TryExpectSymbol(Symbol.Comma) && CurrentToken is not SymbolToken { Symbol: Symbol.CloseParen })
parameters.Add(ParseType());
if (!TryExpectSymbol(Symbol.Comma))
{
_diagnostics.Add(Diagnostic
.Warning("Missing comma between func type arguments")
.WithHelp("Add a ',' to separate arguments")
.At(CurrentToken)
.Build());
ExpectSymbol(Symbol.CloseParen);
break;
}
}
var returnType = TryExpectSymbol(Symbol.Colon) ? ParseType() : new VoidTypeSyntax([]);
var returnType = TryExpectSymbol(Symbol.Colon)
? ParseType()
: new VoidTypeSyntax([]);
return new FuncTypeSyntax(GetTokens(startIndex), parameters, returnType);
}