@Override public void visit(Multiplication multiplication) { if (multiplication.getLeft().equals(HALF)) { ONE_HALF.accept(this); multiplication.getRight().accept(this); } else if (multiplication.getRight().equals(HALF)) { ONE_HALF.accept(this); multiplication.getLeft().accept(this); } else if (multiplication.getLeft().equals(MINUS_HALF)) { MINUS_ONE_HALF.accept(this); multiplication.getRight().accept(this); } else if (multiplication.getRight().equals(MINUS_HALF)) { MINUS_ONE_HALF.accept(this); multiplication.getLeft().accept(this); } else { addBinaryInfix(multiplication, "*"); } }