Improve callstack() debug function and rename it to stacktrace()

This commit is contained in:
2020-03-14 16:44:28 +01:00
parent 5c56060e70
commit 8ee3195bef
7 changed files with 53 additions and 41 deletions

View File

@@ -1,9 +1,9 @@
package io.smnp.ext
import io.smnp.ext.function.CallStackFunction
import io.smnp.ext.function.StackTraceFuction
import org.pf4j.Extension
@Extension
class DebugModule : NativeModuleProvider("smnp.lang.debug") {
override fun functions() = listOf(CallStackFunction())
override fun functions() = listOf(StackTraceFuction())
}

View File

@@ -1,15 +0,0 @@
package io.smnp.ext.function
import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool
import io.smnp.callable.signature.Signature
import io.smnp.type.model.Value
class CallStackFunction : Function("callstack") {
override fun define(new: FunctionDefinitionTool) {
new function Signature.simple() body { env, _ ->
env.printCallStack()
Value.void()
}
}
}

View File

@@ -0,0 +1,18 @@
package io.smnp.ext.function
import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool
import io.smnp.callable.signature.Signature
import io.smnp.type.enumeration.DataType.BOOL
import io.smnp.type.matcher.Matcher.Companion.ofType
import io.smnp.type.matcher.Matcher.Companion.optional
import io.smnp.type.model.Value
class StackTraceFuction : Function("stacktrace") {
override fun define(new: FunctionDefinitionTool) {
new function Signature.simple(optional(ofType(BOOL))) body { env, args ->
env.printCallStack(args.getOrNull(0)?.value as Boolean? ?: false)
Value.void()
}
}
}