数据流分析分四个阶段,分别是活跃性分析、赋值分析、异常分析、本地变量捕获分析。
public void analyzeTree(Env<AttrContext> env, TreeMaker make) {
new AliveAnalyzer().analyzeTree(env, make);
new AssignAnalyzer().analyzeTree(env);
new FlowAnalyzer().analyzeTree(env, make);
new CaptureAnalyzer().analyzeTree(env, make);
}
听起来高深莫测,其实每个都有固定的内容。只不过把我们平常代码检查的工作用代码实现了一遍。