String (GrExpression expression) { final GrBinaryExpression exp = (GrBinaryExpression)expression; final IElementType sign = exp.getOperationTokenType(); final GrExpression lhs = exp.getLeftOperand(); final GrExpression rhs = exp.getRightOperand(); assert rhs != null; if (GroovyTokenTypes.mPLUS == sign) { if (isZero(lhs)) { return rhs.getText(); } else { return lhs.getText(); } } if (GroovyTokenTypes.mMINUS == sign) { return lhs.getText(); } if (GroovyTokenTypes.mSTAR == sign) { if (isOne(lhs)) { return rhs.getText(); } else if (isOne(rhs)) { return lhs.getText(); } else { return "0"; } } if (GroovyTokenTypes.mDIV == sign) { return lhs.getText(); } return ""; }