Refactor scriptDefinition in the common part

- get rid of selector (because of confusions), move it's data into
definition itself and make it more generic with heterogeneous map
- make main KotlinScript annotation accept complete definition
- make additional annotation for building definition from parts
- add ScriptingEnvironment and pass it as a constructor parameter to
the script handlers
- rename some classes for clarity
This commit is contained in:
Ilya Chernikov
2018-03-26 18:42:18 +02:00
parent 2c3a50e4b3
commit 1f0cac50d2
13 changed files with 147 additions and 75 deletions
@@ -23,9 +23,9 @@ import kotlinx.coroutines.experimental.runBlocking
import kotlin.script.experimental.api.*
abstract class BasicScriptingHost<ScriptBase : Any>(
val configurator: ScriptConfigurator,
val configurator: ScriptCompilationConfigurator,
val compiler: ScriptCompiler,
val runner: ScriptRunner<ScriptBase>
val evaluator: ScriptEvaluator<ScriptBase>
) {
open fun <T> runInCoroutineContext(block: suspend CoroutineScope.() -> T): T = runBlocking { block() }
@@ -36,7 +36,7 @@ abstract class BasicScriptingHost<ScriptBase : Any>(
is ResultWithDiagnostics.Failure -> compiled
is ResultWithDiagnostics.Success -> {
val compiledScript = compiled.value!! as CompiledScript<ScriptBase>
runner.run(compiledScript, environment)
evaluator.eval(compiledScript, environment)
}
}
}