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'匹配,則第二種解決方案將起作用。這是因爲'getAnnotation'函數只爲'node'定義,而不是'value'。然而,保羅的解決方案是優先於使用'getTraversalContext' – jurgenv