1
これで、ノードの注釈にアクセスしたいときにアクセスしたいと思います。例与えるために:Rascal ASTアクセスのアクセス注釈
visit (myAST) {
case someNode(str name): {
// How do I now access the @src annotation of someNode here?
}
};
を私はすでに次のことを試してみましたが、これは動作しません:私はここで間違って
visit (myAST) {
case someNode(str name): {
parents = getTraversalContext();
iprintln(parents[0]); // This print shows someNode with the @src annotation.
iprintln(parents[0]@src); // This gives the error: get-annotation not supported on value at...
}
};
何をしているのですか?私のアプローチは間違っていますか?
'parents [0]'とアノテーションが宣言されている型、 'node'とマッチすると、2番目の解決策が動作します。これは 'getAnnotation'関数が' node'に対してのみ定義され、 'value'では定義されていないためです。しかし、Paulが持っている解決策は、 'getTraversalContext'を使用するよりも優先されるべきです – jurgenv