Parse & render sType from spec (fixes #3)

This commit is contained in:
Robin Voetter
2020-11-26 15:47:04 +01:00
parent 646d74ab6a
commit 7fdb6eaad3
3 changed files with 21 additions and 3 deletions

View File

@@ -171,9 +171,16 @@ fn parseContainer(allocator: *Allocator, ty: *xml.Element, is_union: bool) !regi
var i: usize = 0;
var it = ty.findChildrenByTag("member");
var maybe_stype: ?[]const u8 = null;
while (it.next()) |member| {
var xctok = cparse.XmlCTokenizer.init(member);
members[i] = try cparse.parseMember(allocator, &xctok);
if (mem.eql(u8, members[i].name, "sType")) {
if (member.getAttribute("values")) |stype| {
maybe_stype = stype;
}
}
i += 1;
}
@@ -194,6 +201,7 @@ fn parseContainer(allocator: *Allocator, ty: *xml.Element, is_union: bool) !regi
.name = name,
.decl_type = .{
.container = .{
.stype = maybe_stype,
.fields = members,
.is_union = is_union,
}