From 7b467387965a0f7089cf0492f401367a2b193662 Mon Sep 17 00:00:00 2001 From: Abduqodiri Qurbonzoda Date: Mon, 4 Apr 2022 16:19:55 +0300 Subject: [PATCH] [K/N and WASM] Throw on unknown inline flag modifier --- .../native-wasm/src/kotlin/text/regex/Lexer.kt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/libraries/stdlib/native-wasm/src/kotlin/text/regex/Lexer.kt b/libraries/stdlib/native-wasm/src/kotlin/text/regex/Lexer.kt index e41364c8a05..9149d3b2b15 100644 --- a/libraries/stdlib/native-wasm/src/kotlin/text/regex/Lexer.kt +++ b/libraries/stdlib/native-wasm/src/kotlin/text/regex/Lexer.kt @@ -588,6 +588,11 @@ internal class Lexer(val patternString: String, flags: Int) { positive = false } + 'c' -> result = if (positive) + result or Pattern.CANON_EQ + else + result xor Pattern.CANON_EQ and result + 'i' -> result = if (positive) result or Pattern.CASE_INSENSITIVE else @@ -609,11 +614,17 @@ internal class Lexer(val patternString: String, flags: Int) { result xor Pattern.DOTALL and result // We don't support UNICODE_CASE. - /*'u' -> result = if (positive) + 'u' -> {}/*result = if (positive) result or Pattern.UNICODE_CASE else result xor Pattern.UNICODE_CASE and result*/ + // We don't support UNICODE_CHARACTER_CLASS. + 'U' -> {}/*result = if (positive) + result or Pattern.UNICODE_CHARACTER_CLASS + else + result xor Pattern.UNICODE_CHARACTER_CLASS and result*/ + 'x' -> result = if (positive) result or Pattern.COMMENTS else @@ -628,6 +639,10 @@ internal class Lexer(val patternString: String, flags: Int) { nextIndex() return result or (1 shl 8) } + + else -> { + throw PatternSyntaxException("Unknown inline modifier", patternString, curTokenIndex) + } } nextIndex() }