String (@NotNull PyBinaryExpression exp, @NotNull PyElementType tokenType) { final PyExpression lhs = exp.getLeftExpression(); final String lhsText; final String rhsText; if (isConjunctionExpression(lhs, tokenType)) { lhsText = convertConjunctionExpression((PyBinaryExpression)lhs, tokenType); } else { lhsText = convertLeafExpression(lhs); } final PyExpression rhs = exp.getRightExpression(); if (isConjunctionExpression(rhs, tokenType)) { rhsText = convertConjunctionExpression((PyBinaryExpression)rhs, tokenType); } else { rhsText = convertLeafExpression(rhs); } final String flippedConjunction = (tokenType == PyTokenTypes.AND_KEYWORD) ? " or " : " and "; return lhsText + flippedConjunction + rhsText; }