Make definition a part of the basic hosts, simplify usages

This commit is contained in:
Ilya Chernikov
2018-07-23 15:33:17 +02:00
parent 70ec004aaa
commit c41717d03b
4 changed files with 33 additions and 24 deletions
@@ -23,6 +23,7 @@ import kotlinx.coroutines.experimental.runBlocking
import kotlin.script.experimental.api.*
abstract class BasicScriptingHost(
val scriptDefinition: ScriptDefinition,
val compiler: ScriptCompiler,
val evaluator: ScriptEvaluator
) {
@@ -30,7 +31,6 @@ abstract class BasicScriptingHost(
open fun eval(
script: ScriptSource,
scriptDefinition: ScriptDefinition,
compileConfiguration: ScriptCompileConfiguration,
environment: ScriptEvaluationEnvironment
): ResultWithDiagnostics<EvaluationResult> =
@@ -5,10 +5,26 @@
package kotlin.script.experimental.jvmhost
import kotlin.script.experimental.api.KotlinType
import kotlin.script.experimental.api.ScriptDefinition
import kotlin.script.experimental.api.ScriptEvaluator
import kotlin.script.experimental.api.ScriptingEnvironment
import kotlin.script.experimental.definitions.createScriptDefinitionFromAnnotatedBaseClass
import kotlin.script.experimental.host.BasicScriptingHost
import kotlin.script.experimental.jvm.defaultJvmScriptingEnvironment
open class BasicJvmScriptingHost(
compiler: JvmScriptCompiler = JvmScriptCompiler(),
scriptDefinition: ScriptDefinition,
hostEnvironment: ScriptingEnvironment = defaultJvmScriptingEnvironment,
compiler: JvmScriptCompiler = JvmScriptCompiler(hostEnvironment),
evaluator: ScriptEvaluator = BasicJvmScriptEvaluator()
) : BasicScriptingHost(compiler, evaluator)
) : BasicScriptingHost(scriptDefinition, compiler, evaluator)
inline fun <reified T : Any> makeBasicHostFromAnnotatedScriptBaseClass(
hostEnvironment: ScriptingEnvironment = defaultJvmScriptingEnvironment
) =
BasicJvmScriptingHost(
createScriptDefinitionFromAnnotatedBaseClass(KotlinType(T::class), hostEnvironment),
hostEnvironment
)