/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 8 Ġ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 Ġorg . jetbrains . kotlin . nj 2 k . conversions Ċ Ċ import Ġorg . jetbrains . kotlin . nj 2 k . New J 2 k Converter Context Ċ import Ġorg . jetbrains . kotlin . nj 2 k . Sequential Base Conversion Ċ import Ġorg . jetbrains . kotlin . nj 2 k . tree . JK Tree Element ĊĊ Ċ abstract Ġclass ĠMatch Based Conversion ( override Ġval Ġcontext : ĠNew J 2 k Converter Context ) Ġ: ĠSequential Base Conversion Ġ{ ĊĠĠĠ Ġinline Ġfun Ġ< R Ġ: ĠJ K Tree Element , ĠT > Ġapply Recursive ( element : ĠR , Ġdata : ĠT , Ġfunc : Ġ( JK Tree Element , ĠT ) Ġ-> ĠJ K Tree Element ): ĠR Ġ= ĊĠĠĠĠĠĠĠ Ġorg . jetbrains . kotlin . nj 2 k . tree . apply Recursive ( element , Ġdata , Ġ:: on Element Changed , Ġfunc ) ĊĊĠĠĠ Ġabstract Ġfun Ġon Element Changed ( new : ĠJ K Tree Element , Ġold : ĠJ K Tree Element ) Ċ }