This commit is contained in:
nub31
2026-02-25 21:51:32 +01:00
parent cb4aeb9c01
commit 49734544e6
6 changed files with 50 additions and 150 deletions

View File

@@ -96,16 +96,7 @@ public class Generator
{
foreach (var variant in e.Variants)
{
writer.WriteLine("struct");
writer.WriteLine("{");
using (writer.Indent())
{
foreach (var field in variant.Fields)
{
writer.WriteLine($"{CType(field.Type, field.Name)};");
}
}
writer.WriteLine($"}} {variant.Name};");
writer.WriteLine($"{CType(variant.Type, variant.Name)};");
}
}
writer.WriteLine("};");
@@ -407,17 +398,9 @@ public class Generator
var enumInfo = (Module.TypeInfoEnum)info;
var tag = enumInfo.Variants.ToList().FindIndex(x => x.Name == enumVariantType.Variant);
var initializerValues = new Dictionary<string, string>();
var value = EmitExpression(expression.Value);
foreach (var initializer in expression.Initializers)
{
var values = EmitExpression(initializer.Value);
initializerValues[initializer.Name.Ident] = values;
}
var initializerStrings = initializerValues.Select(x => $".{x.Key} = {x.Value}");
return $"({CType(expression.Type)}){{ .tag = {tag}, .{enumVariantType.Variant} = {{ {string.Join(", ", initializerStrings)} }} }}";
return $"({CType(expression.Type)}){{ .tag = {tag}, .{enumVariantType.Variant} = {value} }}";
}
private string EmitExpressionMemberAccess(TypedNodeExpressionMemberAccess expression)