Uast, Minor: Group binary operators

This commit is contained in:
Yan Zhulanow
2016-03-22 22:02:24 +03:00
parent cdd98592e4
commit 5be2b90c6d
2 changed files with 41 additions and 35 deletions
@@ -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("<unknown>")
@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(">>>=")
}
}
@@ -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