mirror of https://github.com/aamine/cbc
* 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:
parent
25ed96e67c
commit
d3cbcbacf4
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue