mirror of
https://github.com/GayPizzaSpecifications/pork.git
synced 2025-08-03 13:11:32 +00:00
language: prelude and internal functions, and varargs support
This commit is contained in:
@ -19,21 +19,10 @@ class RunCommand : CliktCommand(help = "Run Program", name = "run") {
|
||||
override fun run() {
|
||||
val tool = FileTool(PlatformFsProvider.resolve(path))
|
||||
val scope = Scope()
|
||||
scope.define("println", CallableFunction { arguments ->
|
||||
if (quiet) {
|
||||
return@CallableFunction None
|
||||
}
|
||||
when (arguments.values.count()) {
|
||||
0 -> println()
|
||||
1 -> println(arguments.values[0])
|
||||
else -> println(arguments.values.joinToString(" "))
|
||||
}
|
||||
None
|
||||
})
|
||||
|
||||
val main = tool.loadMainFunction(scope, setupEvaluator = {
|
||||
addNativeFunctionProvider("ffi", JnaNativeProvider())
|
||||
addNativeFunctionProvider("java", JavaNativeProvider())
|
||||
addNativeProvider("internal", InternalNativeProvider(quiet = quiet))
|
||||
addNativeProvider("ffi", JnaNativeProvider())
|
||||
addNativeProvider("java", JavaNativeProvider())
|
||||
})
|
||||
|
||||
if (dumpScope) {
|
||||
|
@ -5,6 +5,7 @@ import gay.pizza.pork.ast.NodeVisitor
|
||||
import gay.pizza.pork.ast.visit
|
||||
import gay.pizza.pork.evaluator.CallableFunction
|
||||
import gay.pizza.pork.evaluator.Evaluator
|
||||
import gay.pizza.pork.evaluator.InternalNativeProvider
|
||||
import gay.pizza.pork.evaluator.Scope
|
||||
import gay.pizza.pork.ffi.JavaAutogenContentSource
|
||||
import gay.pizza.pork.frontend.ContentSource
|
||||
|
Reference in New Issue
Block a user