如果您不熟悉,这里是 lis.py 的链接:http: //norvig.com/lispy.html
我正在尝试在 Go 中实现一个小型 lisp 解释器。我受到了 Peter Norvig 在 Python 中的 Lis.py lisp 实现的启发。
我的问题是我想不出一种有效的方法来解析 s 表达式。我曾想过一个计数器,当它看到“(”时会增加 1,当看到“)”时会减少。这样,当计数器为 0 时,你就知道你有一个完整的表达式。
但问题在于,这意味着您必须对每个表达式进行循环,这会使解释器对于任何大型程序都非常慢。
任何替代想法都会很棒,因为我想不出更好的方法。