Renamed doWhileLoop to DoWhileLoop
This commit is contained in:
@@ -5,7 +5,7 @@ import java.util.HashSet;
|
|||||||
|
|
||||||
import de.hsrm.compiler.Klang.nodes.*;
|
import de.hsrm.compiler.Klang.nodes.*;
|
||||||
import de.hsrm.compiler.Klang.nodes.expressions.*;
|
import de.hsrm.compiler.Klang.nodes.expressions.*;
|
||||||
import de.hsrm.compiler.Klang.nodes.loops.doWhileLoop;
|
import de.hsrm.compiler.Klang.nodes.loops.DoWhileLoop;
|
||||||
import de.hsrm.compiler.Klang.nodes.loops.whileLoop;
|
import de.hsrm.compiler.Klang.nodes.loops.whileLoop;
|
||||||
import de.hsrm.compiler.Klang.nodes.statements.*;
|
import de.hsrm.compiler.Klang.nodes.statements.*;
|
||||||
import de.hsrm.compiler.Klang.types.Type;
|
import de.hsrm.compiler.Klang.types.Type;
|
||||||
@@ -70,7 +70,7 @@ public class ContextAnalysis extends KlangBaseVisitor<Node> {
|
|||||||
public Node visitDoWhileLoop(KlangParser.DoWhileLoopContext ctx) {
|
public Node visitDoWhileLoop(KlangParser.DoWhileLoopContext ctx) {
|
||||||
Node condition = this.visit(ctx.cond);
|
Node condition = this.visit(ctx.cond);
|
||||||
Node block = this.visit(ctx.braced_block());
|
Node block = this.visit(ctx.braced_block());
|
||||||
return new doWhileLoop((Expression) condition, (Block) block);
|
return new DoWhileLoop((Expression) condition, (Block) block);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,13 +5,13 @@ import de.hsrm.compiler.Klang.nodes.statements.Statement;;
|
|||||||
import de.hsrm.compiler.Klang.nodes.expressions.Expression;
|
import de.hsrm.compiler.Klang.nodes.expressions.Expression;
|
||||||
import de.hsrm.compiler.Klang.visitors.Visitor;
|
import de.hsrm.compiler.Klang.visitors.Visitor;
|
||||||
|
|
||||||
public class doWhileLoop extends Statement {
|
public class DoWhileLoop extends Statement {
|
||||||
|
|
||||||
public Expression cond;
|
public Expression cond;
|
||||||
public Block block;
|
public Block block;
|
||||||
public Block alt;
|
public Block alt;
|
||||||
|
|
||||||
public doWhileLoop(Expression cond, Block block) {
|
public DoWhileLoop(Expression cond, Block block) {
|
||||||
this.cond = cond;
|
this.cond = cond;
|
||||||
this.block = block;
|
this.block = block;
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,7 @@ import de.hsrm.compiler.Klang.nodes.Block;
|
|||||||
import de.hsrm.compiler.Klang.nodes.FunctionDefinition;
|
import de.hsrm.compiler.Klang.nodes.FunctionDefinition;
|
||||||
import de.hsrm.compiler.Klang.nodes.Program;
|
import de.hsrm.compiler.Klang.nodes.Program;
|
||||||
import de.hsrm.compiler.Klang.nodes.expressions.*;
|
import de.hsrm.compiler.Klang.nodes.expressions.*;
|
||||||
import de.hsrm.compiler.Klang.nodes.loops.doWhileLoop;
|
import de.hsrm.compiler.Klang.nodes.loops.DoWhileLoop;
|
||||||
import de.hsrm.compiler.Klang.nodes.loops.whileLoop;
|
import de.hsrm.compiler.Klang.nodes.loops.whileLoop;
|
||||||
import de.hsrm.compiler.Klang.nodes.statements.*;
|
import de.hsrm.compiler.Klang.nodes.statements.*;
|
||||||
|
|
||||||
@@ -165,7 +165,7 @@ public class EvalVisitor implements Visitor<Value> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Value visit(doWhileLoop e) {
|
public Value visit(DoWhileLoop e) {
|
||||||
Value condition = e.cond.welcome(this);
|
Value condition = e.cond.welcome(this);
|
||||||
Value result = null;
|
Value result = null;
|
||||||
do {
|
do {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import java.util.TreeSet;
|
|||||||
|
|
||||||
import de.hsrm.compiler.Klang.nodes.*;
|
import de.hsrm.compiler.Klang.nodes.*;
|
||||||
import de.hsrm.compiler.Klang.nodes.expressions.*;
|
import de.hsrm.compiler.Klang.nodes.expressions.*;
|
||||||
import de.hsrm.compiler.Klang.nodes.loops.doWhileLoop;
|
import de.hsrm.compiler.Klang.nodes.loops.DoWhileLoop;
|
||||||
import de.hsrm.compiler.Klang.nodes.loops.whileLoop;
|
import de.hsrm.compiler.Klang.nodes.loops.whileLoop;
|
||||||
import de.hsrm.compiler.Klang.nodes.statements.*;
|
import de.hsrm.compiler.Klang.nodes.statements.*;
|
||||||
|
|
||||||
@@ -308,7 +308,7 @@ public class GenASM implements Visitor<Void> {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(doWhileLoop e) {
|
public Void visit(DoWhileLoop e) {
|
||||||
int lblStart = ++lCount;
|
int lblStart = ++lCount;
|
||||||
this.ex.write(".L" + lblStart + ":\n");
|
this.ex.write(".L" + lblStart + ":\n");
|
||||||
e.block.welcome(this);
|
e.block.welcome(this);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
import de.hsrm.compiler.Klang.nodes.*;
|
import de.hsrm.compiler.Klang.nodes.*;
|
||||||
import de.hsrm.compiler.Klang.nodes.expressions.*;
|
import de.hsrm.compiler.Klang.nodes.expressions.*;
|
||||||
import de.hsrm.compiler.Klang.nodes.loops.doWhileLoop;
|
import de.hsrm.compiler.Klang.nodes.loops.DoWhileLoop;
|
||||||
import de.hsrm.compiler.Klang.nodes.loops.whileLoop;
|
import de.hsrm.compiler.Klang.nodes.loops.whileLoop;
|
||||||
import de.hsrm.compiler.Klang.nodes.statements.*;
|
import de.hsrm.compiler.Klang.nodes.statements.*;
|
||||||
|
|
||||||
@@ -129,7 +129,7 @@ class GetVars implements Visitor<Void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(doWhileLoop e) {
|
public Void visit(DoWhileLoop e) {
|
||||||
e.cond.welcome(this);
|
e.cond.welcome(this);
|
||||||
e.block.welcome(this);
|
e.block.welcome(this);
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -215,7 +215,7 @@ public class PrettyPrintVisitor implements Visitor<Void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(doWhileLoop e) {
|
public Void visit(DoWhileLoop e) {
|
||||||
ex.write("do ");
|
ex.write("do ");
|
||||||
e.block.welcome(this);
|
e.block.welcome(this);
|
||||||
ex.write(" while (");
|
ex.write(" while (");
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ public interface Visitor<R> {
|
|||||||
R visit(NegateExpression e);
|
R visit(NegateExpression e);
|
||||||
R visit(IfStatement e);
|
R visit(IfStatement e);
|
||||||
R visit(whileLoop e);
|
R visit(whileLoop e);
|
||||||
R visit(doWhileLoop e);
|
R visit(DoWhileLoop e);
|
||||||
R visit(PrintStatement e);
|
R visit(PrintStatement e);
|
||||||
R visit(VariableDeclaration e);
|
R visit(VariableDeclaration e);
|
||||||
R visit(VariableAssignment e);
|
R visit(VariableAssignment e);
|
||||||
|
|||||||
Reference in New Issue
Block a user