swift-wren

一个 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)

Swift 封装器是什么样子的

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-wrenAlways Right InstituteZeeZide 共同开发。 我们喜欢 反馈、GitHub 星标、酷炫的 合同工作,以及任何你能想到的形式的赞扬。