New J2K: Support all java operators
This commit is contained in:
committed by
Ilya Kirillov
parent
6dc8933a93
commit
2c2bd9ab5a
@@ -93,17 +93,7 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
||||
}
|
||||
}
|
||||
|
||||
fun PsiJavaToken.toJK(): JKOperator = when (tokenType) {
|
||||
JavaTokenType.PLUS -> JKJavaOperatorImpl.PLUS
|
||||
JavaTokenType.MINUS -> JKJavaOperatorImpl.MINUS
|
||||
JavaTokenType.EQEQ -> JKJavaOperatorImpl.EQEQ
|
||||
JavaTokenType.NE -> JKJavaOperatorImpl.NE
|
||||
JavaTokenType.GT -> JKJavaOperatorImpl.GT
|
||||
JavaTokenType.LT -> JKJavaOperatorImpl.LT
|
||||
JavaTokenType.GE -> JKJavaOperatorImpl.GE
|
||||
JavaTokenType.LE -> JKJavaOperatorImpl.LE
|
||||
else -> throw RuntimeException("Not supported")
|
||||
}
|
||||
fun PsiJavaToken.toJK(): JKOperator = JKJavaOperatorImpl.tokenToOperator[tokenType] ?: error("Unsupported token-type: $tokenType")
|
||||
|
||||
fun PsiPrefixExpression.toJK(): JKExpression {
|
||||
return JKPrefixExpressionImpl(operand.toJK(), operationSign.toJK())
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.jetbrains.kotlin.j2k.tree.impl
|
||||
|
||||
import com.intellij.psi.impl.source.tree.ElementType.OPERATION_BIT_SET
|
||||
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.JKLiteralExpression.LiteralType.*
|
||||
@@ -64,15 +66,12 @@ class JKJavaModifierImpl(override val type: JKJavaModifier.JavaModifierType) : J
|
||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaModifier(this, data)
|
||||
}
|
||||
|
||||
sealed class JKJavaOperatorImpl : JKOperator {
|
||||
object PLUS : JKJavaOperatorImpl()
|
||||
object MINUS : JKJavaOperatorImpl()
|
||||
object EQEQ : JKJavaOperatorImpl()
|
||||
object NE : JKJavaOperatorImpl()
|
||||
object GT : JKJavaOperatorImpl()
|
||||
object LT : JKJavaOperatorImpl()
|
||||
object GE : JKJavaOperatorImpl()
|
||||
object LE : JKJavaOperatorImpl()
|
||||
class JKJavaOperatorImpl private constructor(val token: IElementType) : JKOperator {
|
||||
companion object {
|
||||
val tokenToOperator = OPERATION_BIT_SET.types.associate {
|
||||
it to JKJavaOperatorImpl(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sealed class JKJavaQualifierImpl : JKQualifier {
|
||||
|
||||
Reference in New Issue
Block a user