Migrate import evaluator to Kotlin

This commit is contained in:
2020-03-11 22:58:28 +01:00
parent a256db117e
commit 10a7dc8823
6 changed files with 64 additions and 15 deletions

View File

@@ -2,30 +2,38 @@ package io.smnp.interpreter
import io.smnp.dsl.ast.parser.RootParser
import io.smnp.dsl.token.tokenizer.DefaultTokenizer
import io.smnp.environment.DefaultEnvironment
import io.smnp.environment.Environment
import io.smnp.evaluation.evaluator.RootEvaluator
import java.io.File
class Interpreter {
fun run(code: String) {
val tokenizer = DefaultTokenizer()
val parser = RootParser()
private val tokenizer = DefaultTokenizer()
private val parser = RootParser()
private val evaluator = RootEvaluator()
fun run(code: String) {
val lines = code.split("\n")
val tokens = tokenizer.tokenize(lines)
val ast = parser.parse(tokens)
ast.node.pretty()
println(tokens)
val environment = createEnvironment()
evaluator.evaluate(ast.node, environment)
}
private fun createEnvironment(): Environment {
val environment = DefaultEnvironment()
environment.loadModule("smnp.lang")
return environment
}
fun run(file: File) {
val tokenizer = DefaultTokenizer()
val parser = RootParser()
val lines = file.readLines()
val tokens = tokenizer.tokenize(lines)
val ast = parser.parse(tokens)
ast.node.pretty()
println(tokens)
val environment = createEnvironment()
evaluator.evaluate(ast.node, environment)
}
}