2012-10-23 31 views
6

我正在开发和抽象语法树元模型的一个小问题,现在我有模块化块的麻烦。它们是一些文字,但另一方面它们是行为实体,如方法。块是lambda功能的一种,所以也许有人有更好的做法与他们一起工作。lambda函数的Ast表示

我会感谢您的任何建议。

回答

8

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

关于您的问题:重构浏览器将块和方法的共享部分提取到名为SequenceNode的单独节点类型中。序列节点模拟临时表和语句序列。块节点然后包装序列节点,添加参数并继承价值节点的共享行为。方法节点包装序列节点并添加方法名称,参数,编译指示等。