* net/loveruby/cflat/compiler/TypeResolver.java: resolving VariableNode is useless, because it is equal to resolving DefinedVariable.

* net/loveruby/cflat/compiler/TypeResolver.java: define resolveNodeList, which is an alias of visitNodeList.


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@3895 1b9489fe-b721-0410-924e-b54b9192deb8
This commit is contained in:
Minero Aoki 2008-02-11 15:26:27 +00:00
parent 25ed96e67c
commit d3cbcbacf4
2 changed files with 18 additions and 11 deletions

View File

@ -1,3 +1,12 @@
Tue Feb 12 00:26:23 2008 Minero Aoki <aamine@loveruby.net>
* net/loveruby/cflat/compiler/TypeResolver.java: resolving
VariableNode is useless, because it is equal to resolving
DefinedVariable.
* net/loveruby/cflat/compiler/TypeResolver.java: define
resolveNodeList, which is an alias of visitNodeList.
Mon Feb 11 06:54:20 2008 Minero Aoki <aamine@loveruby.net>
* net/loveruby/cflat/compiler/Compiler.java: new option

View File

@ -6,7 +6,7 @@ import java.util.*;
public class TypeResolver extends Visitor {
static public void resolve(AST ast, TypeTable typeTable,
ErrorHandler errorHandler) {
ErrorHandler errorHandler) {
new TypeResolver(typeTable, errorHandler).resolveProgram(ast);
}
@ -18,17 +18,19 @@ public class TypeResolver extends Visitor {
this.errorHandler = errorHandler;
}
public void resolveProgram(AST ast) {
defineTypes(ast.types());
visitNodeList(ast.types());
visitNodeList(ast.declarations());
visitNodeList(ast.entities());
protected void resolveNodeList(Iterator nodes) {
visitNodeList(nodes);
}
private void defineTypes(Iterator deftypes) {
public void resolveProgram(AST ast) {
Iterator deftypes = ast.types();
while (deftypes.hasNext()) {
typeTable.define((TypeDefinition)deftypes.next());
}
resolveNodeList(ast.types());
resolveNodeList(ast.declarations());
resolveNodeList(ast.entities());
}
private void bindType(TypeNode n) {
@ -61,10 +63,6 @@ public class TypeResolver extends Visitor {
bindType(typedef.realTypeNode());
}
public void visit(VariableNode n) {
bindType(n.typeNode());
}
public void visit(DefinedVariable var) {
bindType(var.typeNode());
super.visit(var); // resolve initializer