* net/loveruby/cflat/compiler/Simplifier.java -> IRGenerator.java

* net/loveruby/cflat/compiler/Compiler.java: rename class.


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@4149 1b9489fe-b721-0410-924e-b54b9192deb8
This commit is contained in:
Minero Aoki 2009-04-26 07:19:33 +00:00
parent 732ebf51d4
commit e8f10dc3f6
3 changed files with 12 additions and 7 deletions

View File

@ -1,3 +1,9 @@
Sun Apr 26 16:19:31 2009 Minero Aoki <aamine@loveruby.net>
* net/loveruby/cflat/compiler/Simplifier.java -> IRGenerator.java
* net/loveruby/cflat/compiler/Compiler.java: rename class.
Sun Apr 26 16:10:27 2009 Minero Aoki <aamine@loveruby.net>
* net/loveruby/cflat/compiler/Simplifier.java (SwitchNode):

View File

@ -113,7 +113,7 @@ public class Compiler {
ast.dump();
return;
}
IR ir = new Simplifier(errorHandler).transform(ast);
IR ir = new IRGenerator(errorHandler).generate(ast);
if (opts.mode() == CompilerMode.DumpIR) {
ir.dump();
return;

View File

@ -7,18 +7,18 @@ import net.loveruby.cflat.asm.Label;
import net.loveruby.cflat.exception.*;
import java.util.*;
class Simplifier implements ASTVisitor<Void, ExprNode> {
class IRGenerator implements ASTVisitor<Void, ExprNode> {
private ErrorHandler errorHandler;
private TypeTable typeTable;
// #@@range/ctor{
public Simplifier(ErrorHandler errorHandler) {
public IRGenerator(ErrorHandler errorHandler) {
this.errorHandler = errorHandler;
}
// #@@}
// #@@range/transform{
public IR transform(AST ast) throws SemanticException {
// #@@range/generate{
public IR generate(AST ast) throws SemanticException {
typeTable = ast.typeTable();
for (DefinedVariable var : ast.definedVariables()) {
transformInitializer(var);
@ -180,7 +180,7 @@ class Simplifier implements ASTVisitor<Void, ExprNode> {
}
public Void visit(SwitchNode node) {
Label endLabel = new Label();
Label endLabel = node.endLabel(); // FIXME
stmts.add(node);
node.setCond(transform(node.cond()));
@ -188,7 +188,6 @@ class Simplifier implements ASTVisitor<Void, ExprNode> {
for (CaseNode c : node.cases()) {
label(c.beginLabel());
transform(c.body());
jump(endLabel);
}
popBreak();
label(endLabel);