package Ġscript Ċ Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Paths Ċ import Ġkotlin . script . experimental . api . Result Value Ċ import Ġkotlin . script . experimental . api . Result With Diagnostics Ċ import Ġkotlin . script . experimental . host . to Script Source Ċ import Ġkotlin . system . measure Time Millis Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġval Ġpath Ġ= ĠPaths . get ( object Ġ{} . java Class . getResource ("/ example - test - implicit . k ts "). to URI ()). toString () ĊĠĠĠ Ġval Ġscripting Host Ġ= ĠBasic Host () ĊĠĠĠ Ġprintln (" TO OK Ġ" Ġ+ Ġmeasure Time Millis Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġeval Ġ= Ġscripting Host . eval < Test Script >( File ( path ). to Script Source ()) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( eval ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult With Diagnostics . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFIXME : ĠWhen ĠI Ġadd Ġ" provided Properties " ĠI Ġcan 't Ġrun ĠtoString Ġon Ġ" eval . value " Ġor Ġit Ġthrows ĠStack Overflow . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġresult Ġ= Ġeval . value . returnValue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult Value . Value Ġ-> Ġprintln ( result . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult Value . Unit Ġ-> ĠTODO () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult Value . Error Ġ-> Ġprintln ( result . error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Value . Not Evalu ated Ġ-> ĠTODO () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult With Diagnostics . Failure Ġ-> Ġprintln ( eval . reports ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġprintln (" TO OK Ġ" Ġ+ Ġmeasure Time Millis Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġeval Ġ= Ġscripting Host . eval < Test Script >( File ( path ). to Script Source ()) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( eval ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult With Diagnostics . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFIXME : ĠWhen ĠI Ġadd Ġ" provided Properties " ĠI Ġcan 't Ġrun ĠtoString Ġon Ġ" eval . value " Ġor Ġit Ġthrows ĠStack Overflow . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġresult Ġ= Ġeval . value . returnValue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult Value . Value Ġ-> Ġprintln ( result . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult Value . Unit Ġ-> ĠTODO () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult Value . Error Ġ-> Ġprintln ( result . error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Value . Not Evalu ated Ġ-> ĠTODO () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult With Diagnostics . Failure Ġ-> Ġprintln ( eval . reports ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ }