package de.gaalop.dfg;
/**
* This class provides an empty implementation of methods defined in the {@link ExpressionVisitor} interface. For
* visitors that are interested in a subset of DFG nodes only, this class can be used to override relevant methods.
*
* @author Christian Schwinn
*
*/
public class EmptyExpressionVisitor implements ExpressionVisitor {
private void handleBinary(Expression left, Expression right) {
left.accept(this);
right.accept(this);
}
@Override
public void visit(Subtraction node) {
handleBinary(node.getLeft(), node.getRight());
}
@Override
public void visit(Addition node) {
handleBinary(node.getLeft(), node.getRight());
}
@Override
public void visit(Division node) {
handleBinary(node.getLeft(), node.getRight());
}
@Override
public void visit(InnerProduct node) {
handleBinary(node.getLeft(), node.getRight());
}
@Override
public void visit(Multiplication node) {
handleBinary(node.getLeft(), node.getRight());
}
@Override
public void visit(MathFunctionCall node) {
node.getOperand().accept(this);
}
@Override
public void visit(Variable node) {
}
@Override
public void visit(MultivectorComponent node) {
}
@Override
public void visit(Exponentiation node) {
handleBinary(node.getLeft(), node.getRight());
}
@Override
public void visit(FloatConstant node) {
}
@Override
public void visit(OuterProduct node) {
handleBinary(node.getLeft(), node.getRight());
}
@Override
public void visit(BaseVector node) {
}
@Override
public void visit(Negation node) {
node.getOperand().accept(this);
}
@Override
public void visit(Reverse node) {
node.getOperand().accept(this);
}
@Override
public void visit(LogicalOr node) {
handleBinary(node.getLeft(), node.getRight());
}
@Override
public void visit(LogicalAnd node) {
handleBinary(node.getLeft(), node.getRight());
}
@Override
public void visit(LogicalNegation node) {
node.getOperand().accept(this);
}
@Override
public void visit(Equality node) {
handleBinary(node.getLeft(), node.getRight());
}
@Override
public void visit(Inequality node) {
handleBinary(node.getLeft(), node.getRight());
}
@Override
public void visit(Relation node) {
handleBinary(node.getLeft(), node.getRight());
}
@Override
public void visit(FunctionArgument node) {
}
@Override
public void visit(MacroCall node) {
}
}