postfix operator added

This commit is contained in:
Sergey Ignatov
2011-10-31 12:49:24 +04:00
parent 32eb1e7820
commit 25a23abf83
3 changed files with 48 additions and 0 deletions
@@ -0,0 +1,22 @@
package org.jetbrains.jet.j2k.ast;
import org.jetbrains.annotations.NotNull;
/**
* @author ignatov
*/
public class PostfixOperator extends Expression {
private final String myOp;
private final Expression myExpression;
public PostfixOperator(String op, Expression expression) {
myOp = op;
myExpression = expression;
}
@NotNull
@Override
public String toKotlin() {
return "(" + myExpression.toKotlin() + myOp + ")";
}
}
@@ -174,6 +174,15 @@ public class ExpressionVisitor extends StatementVisitor implements Visitor {
@Override
public void visitPostfixExpression(PsiPostfixExpression expression) {
super.visitPostfixExpression(expression);
String op = "";
if (expression.getOperationSign().getTokenType() == JavaTokenType.PLUSPLUS) op = "++";
if (expression.getOperationSign().getTokenType() == JavaTokenType.MINUSMINUS) op = "--";
myResult = new PostfixOperator(
op,
expressionToExpression(expression.getOperand())
);
}
@Override
@@ -0,0 +1,17 @@
package org.jetbrains.jet.j2k.ast;
import junit.framework.Assert;
import org.jetbrains.jet.j2k.JetTestCaseBase;
/**
* @author ignatov
*/
public class PostfixOperatorTest extends JetTestCaseBase {
public void testIncrement() throws Exception {
Assert.assertEquals(statementToKotlin("i++;"), "(i++)");
}
public void testDecrement() throws Exception {
Assert.assertEquals(statementToKotlin("i--;"), "(i--)");
}
}