@Override
  boolean eliminate(@Nullable PsiJavaToken tokenBefore, @NotNull StringBuilder sb) {
    IElementType tokenBeforeExpressionType = tokenBefore == null ? null : tokenBefore.getTokenType();
    if (myExpression == null) {
      return eliminateInnerExpression(myOperand, tokenBeforeExpressionType, sb);
    }
    if (EliminateUtils.isMultiplicative(myExpression.getOperationTokenType())) {
      return eliminateMultiplicativeExpression(myExpression, tokenBeforeExpressionType,
                                               EliminateUtils.isNegated(myExpression, false, myOperand), sb);
    }
    // e.g. a - b - (c + d)
    if (tokenBefore != null) sb.append(tokenBefore.getText());
    return eliminateExpression(myExpression, null, false, sb);
  }
@Override
  boolean eliminate(@Nullable PsiJavaToken tokenBefore, @NotNull StringBuilder sb)