diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt index d912189840e..1dae9b646a1 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt @@ -16,6 +16,8 @@ package org.jetbrains.kotlin.j2k +import com.intellij.psi.JavaTokenType +import com.intellij.psi.tree.IElementType import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.j2k.tree.impl.JKBodyStub @@ -37,6 +39,13 @@ class NewCodeBuilder { JKClass.ClassKind.INTERFACE -> "interface" } + private fun operatorString(operator: IElementType): String { + return when (operator) { + JavaTokenType.DIV -> "/" + else -> "TODO: $operator" + } + } + inner class Visitor : JKVisitorVoid { override fun visitTreeElement(treeElement: JKTreeElement) { printer.print("/* !!! Hit visitElement for element type: ${treeElement::class} !!! */") @@ -111,7 +120,7 @@ class NewCodeBuilder { override fun visitBinaryExpression(binaryExpression: JKBinaryExpression) { binaryExpression.left.accept(this) printer.printWithNoIndent(" ") - printer.printWithNoIndent(binaryExpression.operator) + printer.printWithNoIndent(operatorString(binaryExpression.operator.token)) printer.printWithNoIndent(" ") binaryExpression.right.accept(this) } @@ -121,13 +130,13 @@ class NewCodeBuilder { } override fun visitPrefixExpression(prefixExpression: JKPrefixExpression) { - printer.printWithNoIndent(prefixExpression.operator) + printer.printWithNoIndent(operatorString(prefixExpression.operator.token)) prefixExpression.expression.accept(this) } override fun visitPostfixExpression(postfixExpression: JKPostfixExpression) { postfixExpression.expression.accept(this) - printer.printWithNoIndent(postfixExpression.operator) + printer.printWithNoIndent(operatorString(postfixExpression.operator.token)) } override fun visitQualifiedExpression(qualifiedExpression: JKQualifiedExpression) { diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/j.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/j.kt index 90f768454ce..853bd52c61d 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/j.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/j.kt @@ -66,7 +66,7 @@ class JKJavaModifierImpl(override val type: JKJavaModifier.JavaModifierType) : J override fun accept(visitor: JKVisitor, data: D): R = visitor.visitJavaModifier(this, data) } -class JKJavaOperatorImpl private constructor(val token: IElementType) : JKOperator { +class JKJavaOperatorImpl private constructor(override val token: IElementType) : JKOperator { companion object { val tokenToOperator = OPERATION_BIT_SET.types.associate { it to JKJavaOperatorImpl(it) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/k.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/k.kt index 8ba919b901a..ac52bfeea7d 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/k.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/k.kt @@ -16,8 +16,10 @@ package org.jetbrains.kotlin.j2k.tree.impl +import com.intellij.psi.tree.IElementType import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.j2k.tree.visitors.JKVisitor +import org.jetbrains.kotlin.lexer.KtTokens class JKKtPropertyImpl( modifierList: JKModifierList, @@ -79,11 +81,11 @@ class JKKtLiteralExpressionImpl( override fun accept(visitor: JKVisitor, data: D): R = visitor.visitKtLiteralExpression(this, data) } -sealed class JKKtOperatorImpl : JKOperator, JKElementBase() { - object PLUS : JKKtOperatorImpl() - object MINUS : JKKtOperatorImpl() - object EQEQ : JKKtOperatorImpl() - object NE : JKKtOperatorImpl() +sealed class JKKtOperatorImpl(override val token: IElementType) : JKOperator, JKElementBase() { + object PLUS : JKKtOperatorImpl(KtTokens.PLUS) + object MINUS : JKKtOperatorImpl(KtTokens.MINUS) + object EQEQ : JKKtOperatorImpl(KtTokens.EQEQ) + object NE : JKKtOperatorImpl(KtTokens.NOT_IS) } class JKKtModifierImpl(override val type: JKKtModifier.KtModifierType) : JKKtModifier, JKElementBase() { diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/markers.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/markers.kt index 10d4b248182..7e554771c67 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/markers.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/markers.kt @@ -16,11 +16,14 @@ package org.jetbrains.kotlin.j2k.tree +import com.intellij.psi.tree.IElementType import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.tree.impl.JKSymbol import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType -interface JKOperator +interface JKOperator { + val token: IElementType +} interface JKQualifier