提问人:Benefixx 提问时间:8/28/2023 更新时间:8/28/2023 访问量:51
Sheme r1rs 字节码
Sheme r1rs bytecode
问:
我有一个简单的 tree-walking 解释器用于方案 r1rs。我使用 Rust 来做它。Lisp 解释器是 s-expressions 解释器,这就是我有这些 AST 节点的原因:
enum SExpression<'a> {
Nil,
Atom(Atom<'a>),
Pair(Box<Pair>)
}
enum Atom<'a> {
Identifier (&'a str),
Number(i32),
String(String)
}
struct Pair<'a> {
car: SExpression<'a>,
cdr: SExpression<'a>
}
像 lambda 这样的结构在我的实现中是宏。 我想用字节码和 VM 重写我的解释器。
- 我无法为 SExpression 选择好的字节码。
- funcall 和宏的语法是相同的。在评估它之前,我不知道如何调用组合的第一个参数。
我检查了“Lisp in small pieces”中的例子,但在本书中,字节码对我来说很难。而且我没有看到 AST 定义
答: 暂无答案
评论
labels
do
((some-fun arg) 1 2)
some-fun