Smalltalk lambda函数的Ast表示

Smalltalk lambda函数的Ast表示,smalltalk,abstract-syntax-tree,lambda,metamodel,Smalltalk,Abstract Syntax Tree,Lambda,Metamodel,我正在为smalltalk开发和抽象语法树元模型,现在我在为一个块建模时遇到了麻烦。它们是一种文字,但另一方面,它们是类似方法的行为实体。块是lambda函数的一种,所以也许有人应该更好地使用它们 我将非常感谢您的建议。重构浏览器有一个非常好的AST,看看它的实现 关于您的问题:重构浏览器将块和方法的共享部分提取到名为SequenceNode的单独节点类型中。sequence节点对TEMP和语句序列进行建模。然后,块节点包装序列节点,添加参数,并继承值节点的共享行为。方法节点包装序列节点并添加方

我正在为smalltalk开发和抽象语法树元模型,现在我在为一个块建模时遇到了麻烦。它们是一种文字,但另一方面,它们是类似方法的行为实体。块是lambda函数的一种,所以也许有人应该更好地使用它们


我将非常感谢您的建议。

重构浏览器有一个非常好的AST,看看它的实现

关于您的问题:重构浏览器将块和方法的共享部分提取到名为
SequenceNode
的单独节点类型中。sequence节点对TEMP和语句序列进行建模。然后,块节点包装序列节点,添加参数,并继承值节点的共享行为。方法节点包装序列节点并添加方法名称、参数、杂注等