当我扫描 ast 时,我想检查是否可以解析 XFeatureCall 类型的元素。
具体例子:
val x = 2
val y = x + z
我知道
val y = <XFeatureCall> + <XFeatureCall>
但只有 XFeatureCall "z" 应该是真的(当应用我正在搜索的尚未找到的谓词时)。
到目前为止,我还没有找到一个模式。除了每个不可解析的变量都满足以下条件:
fc 表示 XFeatureCall
fc.feature instanceof JvmVoid && !fc.explicitOperationCall
然而,这还不够好。因为它还看到“System.out.println”
注意:我使用从根 AST 元素获得的 TreeIterator
如有必要,我将检查 XbaseCompiler 是如何做到的,但我不喜欢 :)