0

ast をスキャンしているときに、XFeatureCall 型の要素を解決できるかどうかを確認したいと考えています。

具体例:

val x = 2
val y = x + z

そんなこと知ってる

val y = <XFeatureCall> + <XFeatureCall>

ただし、XFeatureCall "z" のみが true になるはずです (検索しているまだ見つかっていない述語を適用する場合)。

これまでのところ、私はパターンを見つけることができませんでした。ただし、解決できないすべての変数が次の条件を満たす場合を除きます。

fc は XFeatureCall を意味します

fc.feature instanceof JvmVoid && !fc.explicitOperationCall

しかし、これでは十分ではありません。「System.out.println」も見えるからです。

注: ルート AST 要素から取得した TreeIterator を使用します

必要に応じて、XbaseCompiler がどのようにそれを行うかを調べますが、私はそうしないことを好みます :)

4

1 に答える 1

1

適切なチェックは、機能が解決されていないかどうかを確認する fc.feature.eIsProxy です。「System.out.println も参照する」とはどういう意味ですか?

于 2013-08-16T08:30:07.497 に答える