prefix operators supported
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
package org.jetbrains.jet.j2k.ast;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author ignatov
|
||||
*/
|
||||
public class PrefixOperator extends Expression {
|
||||
private final String myOp;
|
||||
private final Expression myExpression;
|
||||
|
||||
public PrefixOperator(String op, Expression expression) {
|
||||
myOp = op;
|
||||
myExpression = expression;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String toKotlin() {
|
||||
return "(" + myOp + myExpression.toKotlin() + ")";
|
||||
}
|
||||
}
|
||||
@@ -205,15 +205,18 @@ public class ExpressionVisitor extends StatementVisitor implements Visitor {
|
||||
if (expression.getOperationSign().getTokenType() == JavaTokenType.PLUSPLUS) op = "++";
|
||||
if (expression.getOperationSign().getTokenType() == JavaTokenType.MINUSMINUS) op = "--";
|
||||
|
||||
myResult = new PostfixOperator(
|
||||
op,
|
||||
expressionToExpression(expression.getOperand())
|
||||
);
|
||||
myResult = new PostfixOperator(op, expressionToExpression(expression.getOperand()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitPrefixExpression(PsiPrefixExpression expression) {
|
||||
super.visitPrefixExpression(expression);
|
||||
|
||||
String op = "";
|
||||
if (expression.getOperationSign().getTokenType() == JavaTokenType.PLUSPLUS) op = "++";
|
||||
if (expression.getOperationSign().getTokenType() == JavaTokenType.MINUSMINUS) op = "--";
|
||||
|
||||
myResult = new PrefixOperator(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 PrefixOperatorTest extends JetTestCaseBase {
|
||||
public void testIncrement() throws Exception {
|
||||
Assert.assertEquals(statementToKotlin("++i;"), "(++i)");
|
||||
}
|
||||
|
||||
public void testDecrement() throws Exception {
|
||||
Assert.assertEquals(statementToKotlin("--i;"), "(--i)");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user