mirror of
https://github.com/GayPizzaSpecifications/pork.git
synced 2025-08-03 21:21:33 +00:00
add debug mode
This commit is contained in:
@ -3,14 +3,15 @@ package gay.pizza.pork.evaluator
|
||||
import gay.pizza.pork.ast.gen.Symbol
|
||||
import gay.pizza.pork.execution.ExecutionContext
|
||||
import gay.pizza.pork.execution.ExecutionContextProvider
|
||||
import gay.pizza.pork.execution.ExecutionOptions
|
||||
import gay.pizza.pork.execution.NativeRegistry
|
||||
import gay.pizza.pork.frontend.ImportLocator
|
||||
import gay.pizza.pork.frontend.World
|
||||
|
||||
class EvaluatorProvider(val world: World) : ExecutionContextProvider {
|
||||
override fun prepare(importLocator: ImportLocator, entryPointSymbol: Symbol, nativeRegistry: NativeRegistry): ExecutionContext {
|
||||
override fun prepare(importLocator: ImportLocator, entryPointSymbol: Symbol, options: ExecutionOptions): ExecutionContext {
|
||||
val evaluator = Evaluator(world)
|
||||
nativeRegistry.forEachProvider { form, provider ->
|
||||
options.nativeRegistry.forEachProvider { form, provider ->
|
||||
if (provider is ExpandedNativeProvider) {
|
||||
evaluator.addNativeProvider(form, provider)
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user