From 52733c96b8e89467e41c824dab89fec2b1928134 Mon Sep 17 00:00:00 2001 From: Minero Aoki Date: Mon, 11 Feb 2008 15:35:40 +0000 Subject: [PATCH] * net/loveruby/cflat/type/TypeTable.java: remove deftype methods, use #put instead. * net/loveruby/cflat/ast/StructNode.java: define type by myself, calling TypeTable#put directly. * net/loveruby/cflat/ast/UnionNode.java: ditto. * net/loveruby/cflat/ast/TypedefNode.java: ditto. git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@3896 1b9489fe-b721-0410-924e-b54b9192deb8 --- ChangeLog | 12 ++++++++++++ net/loveruby/cflat/ast/StructNode.java | 5 ++++- net/loveruby/cflat/ast/TypedefNode.java | 5 ++++- net/loveruby/cflat/ast/UnionNode.java | 5 ++++- net/loveruby/cflat/type/TypeTable.java | 21 --------------------- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index deb0fd9..2b65703 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +Tue Feb 12 00:35:37 2008 Minero Aoki + + * net/loveruby/cflat/type/TypeTable.java: remove deftype methods, + use #put instead. + + * net/loveruby/cflat/ast/StructNode.java: define type by myself, + calling TypeTable#put directly. + + * net/loveruby/cflat/ast/UnionNode.java: ditto. + + * net/loveruby/cflat/ast/TypedefNode.java: ditto. + Tue Feb 12 00:26:23 2008 Minero Aoki * net/loveruby/cflat/compiler/TypeResolver.java: resolving diff --git a/net/loveruby/cflat/ast/StructNode.java b/net/loveruby/cflat/ast/StructNode.java index 57f0d2e..0d78620 100644 --- a/net/loveruby/cflat/ast/StructNode.java +++ b/net/loveruby/cflat/ast/StructNode.java @@ -15,9 +15,12 @@ public class StructNode extends ComplexTypeDefinition { return true; } + // #@@range/defineIn{ public void defineIn(TypeTable table) { - table.defineStruct(this); + Type type = new StructType(name(), members(), location()); + table.put(typeRef(), type); } + // #@@} public void accept(ASTVisitor visitor) { visitor.visit(this); diff --git a/net/loveruby/cflat/ast/TypedefNode.java b/net/loveruby/cflat/ast/TypedefNode.java index daefed3..00b740e 100644 --- a/net/loveruby/cflat/ast/TypedefNode.java +++ b/net/loveruby/cflat/ast/TypedefNode.java @@ -25,9 +25,12 @@ public class TypedefNode extends TypeDefinition { return real.typeRef(); } + // #@@range/defineIn{ public void defineIn(TypeTable table) { - table.defineUserType(this); + Type type = new UserType(name(), realTypeNode(), location()); + table.put(typeRef(), type); } + // #@@} protected void _dump(Dumper d) { d.printMember("name", name); diff --git a/net/loveruby/cflat/ast/UnionNode.java b/net/loveruby/cflat/ast/UnionNode.java index 9a0a51e..7ca706f 100644 --- a/net/loveruby/cflat/ast/UnionNode.java +++ b/net/loveruby/cflat/ast/UnionNode.java @@ -15,9 +15,12 @@ public class UnionNode extends ComplexTypeDefinition { return true; } + // #@@range/defineIn{ public void defineIn(TypeTable table) { - table.defineUnion(this); + Type type = new UnionType(name(), members(), location()); + table.put(typeRef(), type); } + // #@@} public void accept(ASTVisitor visitor) { visitor.visit(this); diff --git a/net/loveruby/cflat/type/TypeTable.java b/net/loveruby/cflat/type/TypeTable.java index 0e95ce4..5af1bb6 100644 --- a/net/loveruby/cflat/type/TypeTable.java +++ b/net/loveruby/cflat/type/TypeTable.java @@ -123,27 +123,6 @@ public class TypeTable { t.defineIn(this); } - public void defineStruct(StructNode node) { - Type type = new StructType(node.name(), - node.members(), - node.location()); - table.put(node.typeRef(), type); - } - - public void defineUnion(UnionNode node) { - Type type = new UnionType(node.name(), - node.members(), - node.location()); - table.put(node.typeRef(), type); - } - - public void defineUserType(TypedefNode node) { - Type type = new UserType(node.name(), - node.realTypeNode(), - node.location()); - table.put(node.typeRef(), type); - } - public PointerType pointerTo(Type baseType) { return new PointerType(pointerSize, baseType); }