Mercurial > projects > dang
diff sema/DType.d @ 55:79cb0afafabe new_gen
Now structs are somewhat useable to use.
author | Anders Johnsen <skabet@gmail.com> |
---|---|
date | Sat, 26 Apr 2008 23:11:13 +0200 |
parents | c7cde6af0095 |
children | fc62c5296a1c |
line wrap: on
line diff
--- a/sema/DType.d Sat Apr 26 19:13:10 2008 +0200 +++ b/sema/DType.d Sat Apr 26 23:11:13 2008 +0200 @@ -105,16 +105,35 @@ int byteSize() { return bytes_total; } - void setMembers(DType[char[]] members) + void addMember(DType type, char[] name) { - this.members = members; + auto s = DStructMember(type, members.length); + members[name] = s; - foreach (type; members) - bytes_total += type.byteSize(); + bytes_total += type.byteSize(); } - DType[char[]] members; + int indexOf(char[] name) + { + if(name in members) + return members[name].index; + + return -1; + } + + DType typeOf(char[] name) + { + return members[name].type; + } + + DStructMember[char[]] members; private int bytes_total; + + struct DStructMember + { + DType type; + int index; + } } class DFunction : DType