From 5be2b90c6d909aa6f7e1a2dec30491fbc67b7022 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Tue, 22 Mar 2016 22:02:24 +0300 Subject: [PATCH] Uast, Minor: Group binary operators --- .../uast/kinds/UastBinaryOperator.kt | 74 ++++++++++--------- .../java/internal/javaInternalUastUtils.kt | 2 +- 2 files changed, 41 insertions(+), 35 deletions(-) diff --git a/plugins/uast-common/src/org/jetbrains/uast/kinds/UastBinaryOperator.kt b/plugins/uast-common/src/org/jetbrains/uast/kinds/UastBinaryOperator.kt index ac19313afce..3205f7c0736 100644 --- a/plugins/uast-common/src/org/jetbrains/uast/kinds/UastBinaryOperator.kt +++ b/plugins/uast-common/src/org/jetbrains/uast/kinds/UastBinaryOperator.kt @@ -17,108 +17,114 @@ package org.jetbrains.uast import org.jetbrains.uast.kinds.UastOperator -class UastBinaryOperator(override val text: String): UastOperator { +open class UastBinaryOperator(override val text: String): UastOperator { + class LogicalOperator(text: String): UastBinaryOperator(text) + class ComparationOperator(text: String): UastBinaryOperator(text) + class ArithmeticOperator(text: String): UastBinaryOperator(text) + class BitwiseOperator(text: String): UastBinaryOperator(text) + class AssignOperator(text: String): UastBinaryOperator(text) + companion object { @JvmField - val ASSIGN = UastBinaryOperator("=") + val ASSIGN = AssignOperator("=") @JvmField - val PLUS = UastBinaryOperator("+") + val PLUS = ArithmeticOperator("+") @JvmField - val MINUS = UastBinaryOperator("-") + val MINUS = ArithmeticOperator("-") @JvmField - val MULT = UastBinaryOperator("*") + val MULT = ArithmeticOperator("*") @JvmField - val DIV = UastBinaryOperator("/") + val DIV = ArithmeticOperator("/") @JvmField - val MOD = UastBinaryOperator("%") + val MOD = ArithmeticOperator("%") @JvmField - val LOGICAL_OR = UastBinaryOperator("||") + val LOGICAL_OR = LogicalOperator("||") @JvmField - val LOGICAL_AND = UastBinaryOperator("&&") + val LOGICAL_AND = LogicalOperator("&&") @JvmField - val BITWISE_OR = UastBinaryOperator("|") + val BITWISE_OR = BitwiseOperator("|") @JvmField - val BITWISE_AND = UastBinaryOperator("&") + val BITWISE_AND = BitwiseOperator("&") @JvmField - val BITWISE_XOR = UastBinaryOperator("^") + val BITWISE_XOR = BitwiseOperator("^") @JvmField - val EQUALS = UastBinaryOperator("==") + val EQUALS = ComparationOperator("==") @JvmField - val NOT_EQUALS = UastBinaryOperator("!=") + val NOT_EQUALS = ComparationOperator("!=") @JvmField - val IDENTITY_EQUALS = UastBinaryOperator("===") + val IDENTITY_EQUALS = ComparationOperator("===") @JvmField - val IDENTITY_NOT_EQUALS = UastBinaryOperator("!==") + val IDENTITY_NOT_EQUALS = ComparationOperator("!==") @JvmField - val GREATER = UastBinaryOperator(">") + val GREATER = ComparationOperator(">") @JvmField - val GREATER_OR_EQUAL = UastBinaryOperator(">=") + val GREATER_OR_EQUAL = ComparationOperator(">=") @JvmField - val LESS = UastBinaryOperator("<") + val LESS = ComparationOperator("<") @JvmField - val LESS_OR_EQUAL = UastBinaryOperator("<=") + val LESS_OR_EQUAL = ComparationOperator("<=") @JvmField - val SHIFT_LEFT = UastBinaryOperator("<<") + val SHIFT_LEFT = BitwiseOperator("<<") @JvmField - val SHIFT_RIGHT = UastBinaryOperator(">>") + val SHIFT_RIGHT = BitwiseOperator(">>") @JvmField - val BITWISE_SHIFT_RIGHT = UastBinaryOperator(">>>") + val UNSIGNED_SHIFT_RIGHT = BitwiseOperator(">>>") @JvmField val UNKNOWN = UastBinaryOperator("") @JvmField - val PLUS_ASSIGN = UastBinaryOperator("+=") + val PLUS_ASSIGN = AssignOperator("+=") @JvmField - val MINUS_ASSIGN = UastBinaryOperator("-=") + val MINUS_ASSIGN = AssignOperator("-=") @JvmField - val MULTIPLY_ASSIGN = UastBinaryOperator("*=") + val MULTIPLY_ASSIGN = AssignOperator("*=") @JvmField - val DIVIDE_ASSIGN = UastBinaryOperator("/=") + val DIVIDE_ASSIGN = AssignOperator("/=") @JvmField - val REMAINDER_ASSIGN = UastBinaryOperator("%=") + val REMAINDER_ASSIGN = AssignOperator("%=") @JvmField - val AND_ASSIGN = UastBinaryOperator("&=") + val AND_ASSIGN = AssignOperator("&=") @JvmField - val XOR_ASSIGN = UastBinaryOperator("^=") + val XOR_ASSIGN = AssignOperator("^=") @JvmField - val OR_ASSIGN = UastBinaryOperator("|=") + val OR_ASSIGN = AssignOperator("|=") @JvmField - val SHIFT_LEFT_ASSIGN = UastBinaryOperator("<<=") + val SHIFT_LEFT_ASSIGN = AssignOperator("<<=") @JvmField - val SHIFT_RIGHT_ASSIGN = UastBinaryOperator(">>=") + val SHIFT_RIGHT_ASSIGN = AssignOperator(">>=") @JvmField - val UNSIGNED_SHIFT_RIGHT_ASSIGN = UastBinaryOperator(">>>=") + val UNSIGNED_SHIFT_RIGHT_ASSIGN = AssignOperator(">>>=") } } \ No newline at end of file diff --git a/plugins/uast-java/src/org/jetbrains/uast/java/internal/javaInternalUastUtils.kt b/plugins/uast-java/src/org/jetbrains/uast/java/internal/javaInternalUastUtils.kt index 72766263cfb..a1dc92ec5f4 100644 --- a/plugins/uast-java/src/org/jetbrains/uast/java/internal/javaInternalUastUtils.kt +++ b/plugins/uast-java/src/org/jetbrains/uast/java/internal/javaInternalUastUtils.kt @@ -64,7 +64,7 @@ internal fun IElementType.getOperatorType() = when (this) { JavaTokenType.LE -> UastBinaryOperator.LESS_OR_EQUAL JavaTokenType.LTLT -> UastBinaryOperator.SHIFT_LEFT JavaTokenType.GTGT -> UastBinaryOperator.SHIFT_RIGHT - JavaTokenType.GTGTGT -> UastBinaryOperator.BITWISE_SHIFT_RIGHT + JavaTokenType.GTGTGT -> UastBinaryOperator.UNSIGNED_SHIFT_RIGHT JavaTokenType.PLUSEQ -> UastBinaryOperator.PLUS_ASSIGN JavaTokenType.MINUSEQ -> UastBinaryOperator.MINUS_ASSIGN JavaTokenType.ASTERISKEQ -> UastBinaryOperator.MULTIPLY_ASSIGN