/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 Ġ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 . to Valid Jvm Identifier (): ĠString Ġ= ĊĠĠĠ Ġif Ġ( isBlank ()) Ġ"_ ". repeat ( length ) ĊĠĠĠ Ġelse Ġbuild String ( length ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( ch Ġin Ġthis @ to Valid Jvm Identifier ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġencoding Ġis Ġtaken Ġfrom Ġhttps :// blogs . oracle . com / j rose / s ymbolic - fre ed om - in - the - vm ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( ch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'/' Ġ-> Ġappend ("\\ | ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'.' Ġ-> Ġappend ("\\ , ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ';' Ġ-> Ġappend ("\\ ?") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'$ ' Ġ-> Ġappend ("\\ % ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'< ' Ġ-> Ġappend ("\\ ^ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' >' Ġ-> Ġappend ("\\ _ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'[' Ġ-> Ġappend ("\\ { ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' ]' Ġ-> Ġappend ("\\ }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ':' Ġ-> Ġappend ("\\ !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'\\ ' Ġ-> Ġappend ("\\ - ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġappend ( ch ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}