"...すべてのノードには、物理的なソース位置を指すsrc注釈があります。すべての宣言に論理位置識別子のdeclアノテーションが付いています... " は、論文:M3:Rascalのコード解析の一般的なモデルから抜粋した行です。M3モデルの@srcと@decl注釈の別の実装
しかし、すべてのソースコード要素に独自の命名体系があり、要素のすべての型がASTで明示的に定義されているため、その型を解決する必要がない、比較的単純な言語用の新しいM3モデルを作成するとき別々にすべてのノードで論理ソースコードを作成することができ、@declアノテーションを使用しないので、物理ソースコードの場所を捨てるために「ok」とみなし、論理ソースコードの場所を@srcアノテーションに配置しますか?これは、M3モデルの実装が悪いと考えられるのでしょうか?それとも、単純な言葉でM3モデルの実装を簡素化できるからですか?
それ以外の場合は、すべてのノードが物理ソースコードの場所を持つ@srcと論理ソースコードの場所を持つ@declを取得するため、単一の論理ソースコードの場所で十分ですが、ASTが乱雑になります。
私はsrcアノテーションを使用しないのではなく、私はそれを使用します。物理的ではなく論理的なソースコードの場所を置きます。私が使用しないアノテーションは、declアノテーションであり、それは時代遅れになるでしょう。 srcアノテーションは引き続き使用されるため、M3宣言テーブルは正常に機能し続けます。そして今までのところ、何も失敗するようなことはありません。だから私は大丈夫だろう。 – Nicasso
Mmm ..よく見てみましょう。 Eclipseのアウトライン機能はこの設計上の決定でどのように機能していますか?期待どおりに機能していますか? – jurgenv