6
私は開発中であり、スモールトークのための抽象構文木メタモデルを作成しています。今はブロックのモデリングに問題があります。彼らはリテラルのようなものですが、一方でメソッドのような動作エンティティです。ブロックはラムダ関数のようなものなので、誰かがそれらを使って作業する方が良いかもしれません。ラムダ関数のast表現
アドバイスをいただきありがとうございます。
私は開発中であり、スモールトークのための抽象構文木メタモデルを作成しています。今はブロックのモデリングに問題があります。彼らはリテラルのようなものですが、一方でメソッドのような動作エンティティです。ブロックはラムダ関数のようなものなので、誰かがそれらを使って作業する方が良いかもしれません。ラムダ関数のast表現
アドバイスをいただきありがとうございます。
リファクタリングブラウザには非常に優れたASTがあり、その実装を見てください。
質問について:リファクタリングブラウザは、ブロックとメソッドの共有部分をSequenceNode
という別のノードタイプに抽出します。シーケンスノードは、tempsと一連のステートメントをモデル化します。ブロックノードは、シーケンスノードをラップし、引数を追加し、値ノードの共有動作を継承します。メソッドノードは、シーケンスノードをラップし、メソッド名、引数、プラグマなどを追加します。