如何使用ANTLR进行静态分析

时间:2010-12-18 11:53:08

标签: antlr

我计划为专有语言构建静态分析器工具。我打算用ANTLR来构建AST。我想知道如何检查规则和指南,由项目使用AST使用专有语言设置。

例如如果我为C源代码构建AST,并说我想检查空指针。我如何使用AST或CST进行检查。

我是否必须使用ANTLR生成的lexer / parser编写测试代码?

由于

2 个答案:

答案 0 :(得分:2)

这取决于您要执行的具体分析。以您的具体示例为例:要静态确定变量是否(或将是)空指针,您需要构造data flow graph。我建议学习dragon book

答案 1 :(得分:1)

如果要检查空指针值,则需要对专有语言进行完全控制和数据流分析。如果没有超人的努力,ANTLR将无法帮助你。

查看flow analysis capabilities of our DMS。我们用这个来对非常大规模的C程序进行深度流分析。

即使使用这种机器,你也要做很多工作来解释它的语言。这比你可能采取的任何其他方法容易得多。