我正在寻找一种实现S表达式读取器的方法(稍后将与Scheme解释器和编译器一起使用),但我一直在问自己应该如何(如果有的话)编写AST我一直在阅读SICP,这在Scheme中非常简单,但我希望以面向对象的方式在C++中实现解释器和编译器。请记住,我这样做只是为了学习目的,所以我并不是真正在寻找最简单或最快的方法,而是寻找正确且可重复使用的方法。我在一些Scheme实现中看到人们解析s表达式并很容易地输出cons单元格,像这样:structSexpr{};structCons:publicSexpr{Sexpr*left;Sexpr*right;};structIntAtom:Sexpr