renamed whileLoop to WhileLoop
This commit is contained in:
@@ -6,7 +6,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;
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ public class ContextAnalysis extends KlangBaseVisitor<Node> {
|
|||||||
public Node visitWhileLoop(KlangParser.WhileLoopContext ctx) {
|
public Node visitWhileLoop(KlangParser.WhileLoopContext 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 whileLoop((Expression) condition, (Block) block);
|
return new WhileLoop((Expression) condition, (Block) block);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -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 whileLoop extends Statement {
|
public class WhileLoop extends Statement {
|
||||||
|
|
||||||
public Expression cond;
|
public Expression cond;
|
||||||
public Block block;
|
public Block block;
|
||||||
public Block alt;
|
public Block alt;
|
||||||
|
|
||||||
public whileLoop(Expression cond, Block block) {
|
public WhileLoop(Expression cond, Block block) {
|
||||||
this.cond = cond;
|
this.cond = cond;
|
||||||
this.block = block;
|
this.block = block;
|
||||||
}
|
}
|
||||||
@@ -9,7 +9,7 @@ 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.*;
|
||||||
|
|
||||||
public class EvalVisitor implements Visitor<Value> {
|
public class EvalVisitor implements Visitor<Value> {
|
||||||
@@ -154,7 +154,7 @@ public class EvalVisitor implements Visitor<Value> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Value visit(whileLoop e) {
|
public Value visit(WhileLoop e) {
|
||||||
Value condition = e.cond.welcome(this);
|
Value condition = e.cond.welcome(this);
|
||||||
Value result = null;
|
Value result = null;
|
||||||
while (condition.asInteger() != 0) {
|
while (condition.asInteger() != 0) {
|
||||||
|
|||||||
@@ -9,7 +9,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.*;
|
||||||
|
|
||||||
public class GenASM implements Visitor<Void> {
|
public class GenASM implements Visitor<Void> {
|
||||||
@@ -293,7 +293,7 @@ public class GenASM implements Visitor<Void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(whileLoop e) {
|
public Void visit(WhileLoop e) {
|
||||||
int lblCond = ++lCount;
|
int lblCond = ++lCount;
|
||||||
int lblEnd = ++lCount;
|
int lblEnd = ++lCount;
|
||||||
this.ex.write(".L" + lblCond + ":\n");
|
this.ex.write(".L" + lblCond + ":\n");
|
||||||
|
|||||||
@@ -5,7 +5,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.*;
|
||||||
|
|
||||||
class GetVars implements Visitor<Void> {
|
class GetVars implements Visitor<Void> {
|
||||||
@@ -122,7 +122,7 @@ class GetVars implements Visitor<Void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(whileLoop e) {
|
public Void visit(WhileLoop e) {
|
||||||
e.cond.welcome(this);
|
e.cond.welcome(this);
|
||||||
e.block.welcome(this);
|
e.block.welcome(this);
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ public class PrettyPrintVisitor implements Visitor<Void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(whileLoop e) {
|
public Void visit(WhileLoop e) {
|
||||||
ex.write("while (");
|
ex.write("while (");
|
||||||
e.cond.welcome(this);
|
e.cond.welcome(this);
|
||||||
ex.write(") ");
|
ex.write(") ");
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ public interface Visitor<R> {
|
|||||||
R visit(ModuloExpression e);
|
R visit(ModuloExpression e);
|
||||||
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);
|
||||||
|
|||||||
Reference in New Issue
Block a user