Add anonymous structs
This commit is contained in:
@@ -448,6 +448,7 @@ public class Generator
|
||||
NubTypeVoid => "void" + (varName != null ? $" {varName}" : ""),
|
||||
NubTypeBool => "bool" + (varName != null ? $" {varName}" : ""),
|
||||
NubTypeStruct type => $"struct {NameMangler.Mangle(type.Module, type.Name, type)}" + (varName != null ? $" {varName}" : ""),
|
||||
NubTypeAnonymousStruct type => CTypeAnonymousStruct(type, varName),
|
||||
NubTypeEnum type => $"struct {NameMangler.Mangle(type.Module, type.Name, type)}" + (varName != null ? $" {varName}" : ""),
|
||||
NubTypeEnumVariant type => CType(type.EnumType, varName),
|
||||
NubTypeSInt type => $"int{type.Width}_t" + (varName != null ? $" {varName}" : ""),
|
||||
@@ -458,6 +459,11 @@ public class Generator
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(node), node, null)
|
||||
};
|
||||
}
|
||||
|
||||
private string CTypeAnonymousStruct(NubTypeAnonymousStruct type, string? varName)
|
||||
{
|
||||
return $"struct {{ {string.Join(' ', type.Fields.Select(x => $"{CType(x.Type)} {x.Name};"))} }}{(varName != null ? $" {varName}" : "")}";
|
||||
}
|
||||
}
|
||||
|
||||
internal class IndentedTextWriter
|
||||
|
||||
Reference in New Issue
Block a user