如何自动将所有省略的“this”关键字添加到java源代码?

时间:2015-09-25 06:05:38

标签: compiler-construction javacc

这是一个类似家庭作业的一般问题。 这是关于编译器的主题。 也许可以使用像JavaCC这样的工具来实现。 目标可能毫无用处,但解决方法很有价值。

我问,因为我觉得这很难实现。

我需要完成一些可以解决这个问题的项目,但也欢迎提出建议。

感谢。

1 个答案:

答案 0 :(得分:1)

以下是我将如何解决问题:

  • 为Java编写词法分析器和解析器。解析器应输出抽象语法树。当然,对于这一步,解析器构造工具(编译器编译器)非常有用:JavaCC,JJTree,ANTLR和DMS都是一些。幸运的是,我可以使用或开始使用大量免费语法。
  • 写一个创建符号表的第二个传递。
  • 编写第三个遍历输出Java的树。此过程必须参考符号表以确定哪些标识符实例引用字段。

某些工具(如DMS)将有助于第二次和第三次传球。

请注意,对于Java,问题无法在一次通过中解决。考虑

class A {
    class B {
        void m() { a = b ; }
        int b ;
    }
    int a ;
}