如何开启Eclipse JDT ASTParser的ResolveBindings功能

本文介绍了Eclipse JDT的ASTParser如何解析Java源代码,并重点讨论了开启ResolveBindings功能以获取详细的binding信息。通过binding,可以进行更深入的语义分析。Eclipse的ASTView插件展示了开启此功能后的AST效果,但在实际操作中,需满足特定条件,如设置项目环境和单元名称,以确保正确解析。
摘要由CSDN通过智能技术生成

抽象语法树AST(Abstract Syntax Tree)是对程序代码的结构化表示,是对代码进行词法分析、语法分析后得到的产物。可以通过维基百科https://en.wikipedia.org/wiki/Abstract_syntax_tree了解具体的概念。
Eclipse作为开源的Java IDE就提供了一个库来帮助我们达到将Java源代码结构化为AST目的,它的名字是JDT(Java Development Tools)。Eclipse JDT的ASTParser类则具体实现这种解析。
另外,对于一颗抽象语法树,JDT引入了binding的概念,即定义了一个IBinding接口,一个binding代表了一个Java语言的命名实体,用于从编译器的角度来描绘程序结构,实体从不同的类型可分为packages, types, fields, methods, constructors, and local variables。在Eclipse JDT ASTParser进行AST解析过程中,如果开启了ResolveBindings功能,编译器便将为它所创建出的每一个AST叶子节点提供所分解的binding信息。
对于分解得到的binding信息,可以使得你所结构化出的AST更加细节化,其更加倾向于语义层次的分析,尤其是实现诸如IDE编辑器中的一些代码编写的问题警报的识别。
Eclipse的插件ASTView(http://www.eclipse.org/jdt/ui/astview/index.php)实际上是一个对AST的全面实现:

这里写图片描述

所结构化的代码参考如下:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;

public class FileHelper {
   
  public static String getFileContent(String file){
    BufferedReader reader = null;
    //测试AST
    StringBuffer sb = new StringBuffer();
    int a;
    try {
      String line = null;
      reader = new BufferedReader(new FileReader(file));
      while ((line=reader.readLine()) != null) {
        sb.append(line);
      }
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (reader != null) {
        
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值