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 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 { companion object {
@JvmField @JvmField
val ASSIGN = UastBinaryOperator("=") val ASSIGN = AssignOperator("=")
@JvmField @JvmField
val PLUS = UastBinaryOperator("+") val PLUS = ArithmeticOperator("+")
@JvmField @JvmField
val MINUS = UastBinaryOperator("-") val MINUS = ArithmeticOperator("-")
@JvmField @JvmField
val MULT = UastBinaryOperator("*") val MULT = ArithmeticOperator("*")
@JvmField @JvmField
val DIV = UastBinaryOperator("/") val DIV = ArithmeticOperator("/")
@JvmField @JvmField
val MOD = UastBinaryOperator("%") val MOD = ArithmeticOperator("%")
@JvmField @JvmField
val LOGICAL_OR = UastBinaryOperator("||") val LOGICAL_OR = LogicalOperator("||")
@JvmField @JvmField
val LOGICAL_AND = UastBinaryOperator("&&") val LOGICAL_AND = LogicalOperator("&&")
@JvmField @JvmField
val BITWISE_OR = UastBinaryOperator("|") val BITWISE_OR = BitwiseOperator("|")
@JvmField @JvmField
val BITWISE_AND = UastBinaryOperator("&") val BITWISE_AND = BitwiseOperator("&")
@JvmField @JvmField
val BITWISE_XOR = UastBinaryOperator("^") val BITWISE_XOR = BitwiseOperator("^")
@JvmField @JvmField
val EQUALS = UastBinaryOperator("==") val EQUALS = ComparationOperator("==")
@JvmField @JvmField
val NOT_EQUALS = UastBinaryOperator("!=") val NOT_EQUALS = ComparationOperator("!=")
@JvmField @JvmField
val IDENTITY_EQUALS = UastBinaryOperator("===") val IDENTITY_EQUALS = ComparationOperator("===")
@JvmField @JvmField
val IDENTITY_NOT_EQUALS = UastBinaryOperator("!==") val IDENTITY_NOT_EQUALS = ComparationOperator("!==")
@JvmField @JvmField
val GREATER = UastBinaryOperator(">") val GREATER = ComparationOperator(">")
@JvmField @JvmField
val GREATER_OR_EQUAL = UastBinaryOperator(">=") val GREATER_OR_EQUAL = ComparationOperator(">=")
@JvmField @JvmField
val LESS = UastBinaryOperator("<") val LESS = ComparationOperator("<")
@JvmField @JvmField
val LESS_OR_EQUAL = UastBinaryOperator("<=") val LESS_OR_EQUAL = ComparationOperator("<=")
@JvmField @JvmField
val SHIFT_LEFT = UastBinaryOperator("<<") val SHIFT_LEFT = BitwiseOperator("<<")
@JvmField @JvmField
val SHIFT_RIGHT = UastBinaryOperator(">>") val SHIFT_RIGHT = BitwiseOperator(">>")
@JvmField @JvmField
val BITWISE_SHIFT_RIGHT = UastBinaryOperator(">>>") val UNSIGNED_SHIFT_RIGHT = BitwiseOperator(">>>")
@JvmField @JvmField
val UNKNOWN = UastBinaryOperator("<unknown>") val UNKNOWN = UastBinaryOperator("<unknown>")
@JvmField @JvmField
val PLUS_ASSIGN = UastBinaryOperator("+=") val PLUS_ASSIGN = AssignOperator("+=")
@JvmField @JvmField
val MINUS_ASSIGN = UastBinaryOperator("-=") val MINUS_ASSIGN = AssignOperator("-=")
@JvmField @JvmField
val MULTIPLY_ASSIGN = UastBinaryOperator("*=") val MULTIPLY_ASSIGN = AssignOperator("*=")
@JvmField @JvmField
val DIVIDE_ASSIGN = UastBinaryOperator("/=") val DIVIDE_ASSIGN = AssignOperator("/=")
@JvmField @JvmField
val REMAINDER_ASSIGN = UastBinaryOperator("%=") val REMAINDER_ASSIGN = AssignOperator("%=")
@JvmField @JvmField
val AND_ASSIGN = UastBinaryOperator("&=") val AND_ASSIGN = AssignOperator("&=")
@JvmField @JvmField
val XOR_ASSIGN = UastBinaryOperator("^=") val XOR_ASSIGN = AssignOperator("^=")
@JvmField @JvmField
val OR_ASSIGN = UastBinaryOperator("|=") val OR_ASSIGN = AssignOperator("|=")
@JvmField @JvmField
val SHIFT_LEFT_ASSIGN = UastBinaryOperator("<<=") val SHIFT_LEFT_ASSIGN = AssignOperator("<<=")
@JvmField @JvmField
val SHIFT_RIGHT_ASSIGN = UastBinaryOperator(">>=") val SHIFT_RIGHT_ASSIGN = AssignOperator(">>=")
@JvmField @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.LE -> UastBinaryOperator.LESS_OR_EQUAL
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.UNSIGNED_SHIFT_RIGHT
JavaTokenType.PLUSEQ -> UastBinaryOperator.PLUS_ASSIGN JavaTokenType.PLUSEQ -> UastBinaryOperator.PLUS_ASSIGN
JavaTokenType.MINUSEQ -> UastBinaryOperator.MINUS_ASSIGN JavaTokenType.MINUSEQ -> UastBinaryOperator.MINUS_ASSIGN
JavaTokenType.ASTERISKEQ -> UastBinaryOperator.MULTIPLY_ASSIGN JavaTokenType.ASTERISKEQ -> UastBinaryOperator.MULTIPLY_ASSIGN