package de.gaalop.api.cfg;
import de.gaalop.cfg.AssignmentNode;
import de.gaalop.cfg.EmptyControlFlowVisitor;
import de.gaalop.cfg.ExpressionStatement;
import de.gaalop.api.dfg.RoundingDFGVisitor;
/**
* Implements a control flow graph visitor, which rounds float constants in the graph
* @author Christian Steinmetz
*/
public class RoundingCFGVisitor extends EmptyControlFlowVisitor {
private final int numberOfDigits;
public RoundingCFGVisitor(int numberOfDigits) {
this.numberOfDigits = numberOfDigits;
}
@Override
public void visit(AssignmentNode node) {
node.setValue(RoundingDFGVisitor.round(node.getValue(), numberOfDigits));
}
@Override
public void visit(ExpressionStatement node) {
node.setExpression(RoundingDFGVisitor.round(node.getExpression(), numberOfDigits));
}
}