diff --git a/zpa-core/src/main/kotlin/org/sonar/plsqlopen/lexer/RegexPunctuatorChannel.kt b/zpa-core/src/main/kotlin/org/sonar/plsqlopen/lexer/RegexPunctuatorChannel.kt index fb0abf24..ea8b1a17 100644 --- a/zpa-core/src/main/kotlin/org/sonar/plsqlopen/lexer/RegexPunctuatorChannel.kt +++ b/zpa-core/src/main/kotlin/org/sonar/plsqlopen/lexer/RegexPunctuatorChannel.kt @@ -20,7 +20,6 @@ package org.sonar.plsqlopen.lexer import com.felipebz.flr.api.Token -import com.felipebz.flr.api.TokenType import com.felipebz.flr.channel.Channel import com.felipebz.flr.channel.CodeReader import com.felipebz.flr.impl.LexerException @@ -32,20 +31,17 @@ import java.util.regex.Pattern class RegexPunctuatorChannel(vararg punctuators: PlSqlPunctuator) : Channel { private val tokenMatchers = LinkedHashMap() - private class PunctuatorComparator : Comparator { - - override fun compare(a: TokenType, b: TokenType): Int { + init { + Arrays.sort(punctuators) { a, b -> if (a.value.length == b.value.length) { - return 0 + 0 + } else if (a.value.length > b.value.length) { + -1 + } else { + 1 } - return if (a.value.length > b.value.length) -1 else 1 } - } - - init { - Arrays.sort(punctuators, PunctuatorComparator()) - for (punctuator in punctuators) { tokenMatchers[punctuator] = Pattern.compile(punctuator.value) }