一个 Swift 包,也是 wren 脚本语言的封装器。 wren 上有一个不错的问答集锦。它是一种非常小的可嵌入语言,类似于 Lua,但没有那些奇怪之处。
wren 的一个主要缺失是与宿主环境的重入性。 另一个问题是宿主函数没有任何函数环境,即没有函数特定的用户数据指针,或其他允许 trampoline 的方法。 仍然欢迎 PR,我们将关注 wren 未来的发展方向。
这个 SwiftPM 包嵌入了 Wren 本身,也就是说,它在 vendored 分支中包含了 amalgation(合并文件)。
来自 问答集锦 的示例
class Account {
construct new(balance) { _balance = balance }
withdraw(amount) { _balance = _balance - amount }
}
var account = Account.new(1000)
account.withdraw(100)
Hello world
let vm = WrenVM()
try vm.interpret(
"""
System.print("I'm running in a VM!")
"""
)
使用 dynamicCallable
let vm = WrenVM()
try vm.main.System.print("Hello World!")
swift-wren 由 Always Right Institute 和 ZeeZide 共同开发。 我们喜欢 反馈、GitHub 星标、酷炫的 合同工作,以及任何你能想到的形式的赞扬。