mirror of https://github.com/aamine/cbc
* 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
This commit is contained in:
parent
d3cbcbacf4
commit
52733c96b8
12
ChangeLog
12
ChangeLog
|
|
@ -1,3 +1,15 @@
|
||||||
|
Tue Feb 12 00:35:37 2008 Minero Aoki <aamine@loveruby.net>
|
||||||
|
|
||||||
|
* 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 <aamine@loveruby.net>
|
Tue Feb 12 00:26:23 2008 Minero Aoki <aamine@loveruby.net>
|
||||||
|
|
||||||
* net/loveruby/cflat/compiler/TypeResolver.java: resolving
|
* net/loveruby/cflat/compiler/TypeResolver.java: resolving
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,12 @@ public class StructNode extends ComplexTypeDefinition {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// #@@range/defineIn{
|
||||||
public void defineIn(TypeTable table) {
|
public void defineIn(TypeTable table) {
|
||||||
table.defineStruct(this);
|
Type type = new StructType(name(), members(), location());
|
||||||
|
table.put(typeRef(), type);
|
||||||
}
|
}
|
||||||
|
// #@@}
|
||||||
|
|
||||||
public void accept(ASTVisitor visitor) {
|
public void accept(ASTVisitor visitor) {
|
||||||
visitor.visit(this);
|
visitor.visit(this);
|
||||||
|
|
|
||||||
|
|
@ -25,9 +25,12 @@ public class TypedefNode extends TypeDefinition {
|
||||||
return real.typeRef();
|
return real.typeRef();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// #@@range/defineIn{
|
||||||
public void defineIn(TypeTable table) {
|
public void defineIn(TypeTable table) {
|
||||||
table.defineUserType(this);
|
Type type = new UserType(name(), realTypeNode(), location());
|
||||||
|
table.put(typeRef(), type);
|
||||||
}
|
}
|
||||||
|
// #@@}
|
||||||
|
|
||||||
protected void _dump(Dumper d) {
|
protected void _dump(Dumper d) {
|
||||||
d.printMember("name", name);
|
d.printMember("name", name);
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,12 @@ public class UnionNode extends ComplexTypeDefinition {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// #@@range/defineIn{
|
||||||
public void defineIn(TypeTable table) {
|
public void defineIn(TypeTable table) {
|
||||||
table.defineUnion(this);
|
Type type = new UnionType(name(), members(), location());
|
||||||
|
table.put(typeRef(), type);
|
||||||
}
|
}
|
||||||
|
// #@@}
|
||||||
|
|
||||||
public void accept(ASTVisitor visitor) {
|
public void accept(ASTVisitor visitor) {
|
||||||
visitor.visit(this);
|
visitor.visit(this);
|
||||||
|
|
|
||||||
|
|
@ -123,27 +123,6 @@ public class TypeTable {
|
||||||
t.defineIn(this);
|
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) {
|
public PointerType pointerTo(Type baseType) {
|
||||||
return new PointerType(pointerSize, baseType);
|
return new PointerType(pointerSize, baseType);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue