gpt4 book ai didi

java - 从抽象语法树中查找变量/方法引用

转载 作者:行者123 更新时间:2023-12-01 04:35:51 25 4
gpt4 key购买 nike

我想查找对给定变量或给定方法的调用者的引用,就像 Eclipse 中的“打开调用层次结构”和“(查找)引用”功能(当您右键单击变量或方法时。)

现在我已经获得了源代码的抽象语法树。我使用 Eclipse JDT 来获取 AST,它也解析了所有类型绑定(bind)。

所以我的问题是,是否可以仅使用此抽象语法树来查找变量/方法引用?(我知道一些代码分析库使用字节码来实现这一点。我想知道是否可以使用 AST 进行类似的分析。)

最佳答案

只使用这个抽象语法树

仅凭 AST,您无法轻松确定引用或调用者。AST 只是语法,并不直接编码它的含义(用含义的子集是“这被引用到被调用”)。

为了确定引用或调用的内容,必须以相当复杂的方式分析 AST,以构建符号范围并确定哪些内容涉及哪些内容。 (很多Java标准/书籍的内容是关于这个过程的,但是信息分散由于其复杂性,贯穿整本书)。

一个好的前端通常会计算这些信息,或者从 AST 中轻松提取的信息。我相信 Eclipse JDT 有这些信息并提供一组 API 来访问它,但我对 JDT 一无所知。

但是仅通过 AST 无法轻松获得它。

关于java - 从抽象语法树中查找变量/方法引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17364725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com