Uast Java, Kotlin: Support all binary operators in Uast
This commit is contained in:
@@ -119,6 +119,6 @@ class UastBinaryOperator(override val text: String): UastOperator {
|
|||||||
val SHIFT_RIGHT_ASSIGN = UastBinaryOperator(">>=")
|
val SHIFT_RIGHT_ASSIGN = UastBinaryOperator(">>=")
|
||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
val BITWISE_SHIFT_RIGHT_ASSIGN = UastBinaryOperator(">>>=")
|
val UNSIGNED_SHIFT_RIGHT_ASSIGN = UastBinaryOperator(">>>=")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -44,6 +44,7 @@ internal fun PsiModifierListOwner.getVisibility(): UastVisibility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal fun IElementType.getOperatorType() = when (this) {
|
internal fun IElementType.getOperatorType() = when (this) {
|
||||||
|
JavaTokenType.EQ -> UastBinaryOperator.ASSIGN
|
||||||
JavaTokenType.PLUS -> UastBinaryOperator.PLUS
|
JavaTokenType.PLUS -> UastBinaryOperator.PLUS
|
||||||
JavaTokenType.MINUS -> UastBinaryOperator.MINUS
|
JavaTokenType.MINUS -> UastBinaryOperator.MINUS
|
||||||
JavaTokenType.ASTERISK -> UastBinaryOperator.MULT
|
JavaTokenType.ASTERISK -> UastBinaryOperator.MULT
|
||||||
@@ -61,6 +62,16 @@ internal fun IElementType.getOperatorType() = when (this) {
|
|||||||
JavaTokenType.LTLT -> UastBinaryOperator.SHIFT_LEFT
|
JavaTokenType.LTLT -> UastBinaryOperator.SHIFT_LEFT
|
||||||
JavaTokenType.GTGT -> UastBinaryOperator.SHIFT_RIGHT
|
JavaTokenType.GTGT -> UastBinaryOperator.SHIFT_RIGHT
|
||||||
JavaTokenType.GTGTGT -> UastBinaryOperator.BITWISE_SHIFT_RIGHT
|
JavaTokenType.GTGTGT -> UastBinaryOperator.BITWISE_SHIFT_RIGHT
|
||||||
|
JavaTokenType.PLUSEQ -> UastBinaryOperator.PLUS_ASSIGN
|
||||||
|
JavaTokenType.MINUSEQ -> UastBinaryOperator.MINUS_ASSIGN
|
||||||
|
JavaTokenType.ASTERISKEQ -> UastBinaryOperator.MULTIPLY_ASSIGN
|
||||||
|
JavaTokenType.DIVEQ -> UastBinaryOperator.DIVIDE_ASSIGN
|
||||||
|
JavaTokenType.ANDEQ -> UastBinaryOperator.AND_ASSIGN
|
||||||
|
JavaTokenType.XOREQ -> UastBinaryOperator.XOR_ASSIGN
|
||||||
|
JavaTokenType.OREQ -> UastBinaryOperator.OR_ASSIGN
|
||||||
|
JavaTokenType.LTLTEQ -> UastBinaryOperator.SHIFT_LEFT_ASSIGN
|
||||||
|
JavaTokenType.GTGTEQ -> UastBinaryOperator.SHIFT_RIGHT_ASSIGN
|
||||||
|
JavaTokenType.GTGTGTEQ -> UastBinaryOperator.UNSIGNED_SHIFT_RIGHT_ASSIGN
|
||||||
else -> UastBinaryOperator.UNKNOWN
|
else -> UastBinaryOperator.UNKNOWN
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+11
@@ -30,11 +30,17 @@ class KotlinUBinaryExpression(
|
|||||||
override val rightOperand by lz { KotlinConverter.convertOrEmpty(psi.right, this) }
|
override val rightOperand by lz { KotlinConverter.convertOrEmpty(psi.right, this) }
|
||||||
|
|
||||||
override val operator = when (psi.operationToken) {
|
override val operator = when (psi.operationToken) {
|
||||||
|
KtTokens.EQ -> UastBinaryOperator.ASSIGN
|
||||||
KtTokens.PLUS -> UastBinaryOperator.PLUS
|
KtTokens.PLUS -> UastBinaryOperator.PLUS
|
||||||
KtTokens.MINUS -> UastBinaryOperator.MINUS
|
KtTokens.MINUS -> UastBinaryOperator.MINUS
|
||||||
KtTokens.MUL -> UastBinaryOperator.MULT
|
KtTokens.MUL -> UastBinaryOperator.MULT
|
||||||
KtTokens.DIV -> UastBinaryOperator.DIV
|
KtTokens.DIV -> UastBinaryOperator.DIV
|
||||||
KtTokens.PERC -> UastBinaryOperator.MOD
|
KtTokens.PERC -> UastBinaryOperator.MOD
|
||||||
|
KtTokens.OROR -> UastBinaryOperator.LOGICAL_OR
|
||||||
|
KtTokens.ANDAND -> UastBinaryOperator.LOGICAL_AND
|
||||||
|
//KtTokens.OR -> UastBinaryOperator.BITWISE_OR
|
||||||
|
//KtTokens.AND -> UastBinaryOperator.BITWISE_AND
|
||||||
|
//KtTokens.XOR -> UastBinaryOperator.BITWISE_XOR
|
||||||
KtTokens.EQEQ -> UastBinaryOperator.EQUALS
|
KtTokens.EQEQ -> UastBinaryOperator.EQUALS
|
||||||
KtTokens.EXCLEQ -> UastBinaryOperator.NOT_EQUALS
|
KtTokens.EXCLEQ -> UastBinaryOperator.NOT_EQUALS
|
||||||
KtTokens.EQEQEQ -> UastBinaryOperator.IDENTITY_EQUALS
|
KtTokens.EQEQEQ -> UastBinaryOperator.IDENTITY_EQUALS
|
||||||
@@ -43,6 +49,11 @@ class KotlinUBinaryExpression(
|
|||||||
KtTokens.GTEQ -> UastBinaryOperator.GREATER_OR_EQUAL
|
KtTokens.GTEQ -> UastBinaryOperator.GREATER_OR_EQUAL
|
||||||
KtTokens.LT -> UastBinaryOperator.LESS
|
KtTokens.LT -> UastBinaryOperator.LESS
|
||||||
KtTokens.LTEQ -> UastBinaryOperator.LESS_OR_EQUAL
|
KtTokens.LTEQ -> UastBinaryOperator.LESS_OR_EQUAL
|
||||||
|
KtTokens.PLUSEQ -> UastBinaryOperator.PLUS_ASSIGN
|
||||||
|
KtTokens.MINUSEQ -> UastBinaryOperator.MINUS_ASSIGN
|
||||||
|
KtTokens.MULTEQ -> UastBinaryOperator.MULTIPLY_ASSIGN
|
||||||
|
KtTokens.DIVEQ -> UastBinaryOperator.DIVIDE_ASSIGN
|
||||||
|
KtTokens.PERCEQ -> UastBinaryOperator.REMAINDER_ASSIGN
|
||||||
KtTokens.IN_KEYWORD -> KotlinBinaryOperators.IN
|
KtTokens.IN_KEYWORD -> KotlinBinaryOperators.IN
|
||||||
KtTokens.NOT_IN -> KotlinBinaryOperators.NOT_IN
|
KtTokens.NOT_IN -> KotlinBinaryOperators.NOT_IN
|
||||||
else -> UastBinaryOperator.UNKNOWN
|
else -> UastBinaryOperator.UNKNOWN
|
||||||
|
|||||||
Reference in New Issue
Block a user