@Nullable
  private static String calculateSimplifiedBinaryExpression(GrBinaryExpression expression) {
    final IElementType sign = expression.getOperationTokenType();
    final GrExpression lhs = expression.getLeftOperand();

    final GrExpression rhs = expression.getRightOperand();
    if (rhs == null) {
      return null;
    }
    final String rhsText = rhs.getText();
    final String lhsText = lhs.getText();
    if (sign.equals(T_LAND)) {
      if (isTrue(lhs)) {
        return rhsText;
      }
      else {
        return lhsText;
      }
    }
    else if (sign.equals(T_LOR)) {
      if (isFalse(lhs)) {
        return rhsText;
      }
      else {
        return lhsText;
      }
    }
    else if (sign.equals(T_XOR) || sign.equals(T_NEQ)) {
      if (isFalse(lhs)) {
        return rhsText;
      }
      else if (isFalse(rhs)) {
        return lhsText;
      }
      else if (isTrue(lhs)) {
        return createStringForNegatedExpression(rhs);
      }
      else {
        return createStringForNegatedExpression(lhs);
      }
    }
    else if (sign.equals(T_EQ)) {
      if (isTrue(lhs)) {
        return rhsText;
      }
      else if (isTrue(rhs)) {
        return lhsText;
      }
      else if (isFalse(lhs)) {
        return createStringForNegatedExpression(rhs);
      }
      else {
        return createStringForNegatedExpression(lhs);
      }
    }
    else {
      return "";
    }
  }
@Nullable
  private static String calculateSimplifiedBinaryExpression(GrBinaryExpression expression)