Implement direct bindings to script properties mapping in the JSR-223 implementation
fix infrastructure and codegen parts
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package kotlin.script.experimental.jvm.util
|
||||
|
||||
fun String.toValidJvmIdentifier(): String =
|
||||
if (isBlank()) "_".repeat(length)
|
||||
else buildString(length) {
|
||||
for (ch in this@toValidJvmIdentifier) {
|
||||
// encoding is taken from https://blogs.oracle.com/jrose/symbolic-freedom-in-the-vm
|
||||
when (ch) {
|
||||
'/' -> append("\\|")
|
||||
'.' -> append("\\,")
|
||||
';' -> append("\\?")
|
||||
'$' -> append("\\%")
|
||||
'<' -> append("\\^")
|
||||
'>' -> append("\\_")
|
||||
'[' -> append("\\{")
|
||||
']' -> append("\\}")
|
||||
':' -> append("\\!")
|
||||
'\\' -> append("\\-")
|
||||
else -> append(ch)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user