antlr2datalog
1.0.0

这是使用Datalog查询静态分析源代码的框架。
有关一组受支持的源语言,请参见Grammars-V4存储库中的解析器列表。以下语言包括:C,C ++,Cobol85,GO,JavaScript,Kotlin,Lua,PHP,PHP,Prolog,Python3,Rust and Solidity。可以轻松地添加对更多语言的支持,请在下面阅读有关如何启用其他语言的支持。
该框架是通过将ANTLR解析器转换为Datalog前端的。 ANTLR解析器API被翻译成数据架模式,然后在源代码上调用解析器,根据该架构填充“事实”目录。最后,分析逻辑基于事实并计算分析结果。有关更多信息,请参见Architecture.md。
./install-parsers.sh
安装蛋饼。
构建并安装分布:
./gradlew installDist
python3示例:
build/install/antlr2datalog/bin/antlr2datalog -l python3 -i grammars-v4/python/python3/examples/coroutines.py
科特林示例:
build/install/antlr2datalog/bin/antlr2datalog -l kotlin -i grammars-v4/kotlin/kotlin-formal/examples/Test.kt
git clone https://github.com/antlr/grammars-v4.git
cd grammars-v4
mvn install
编辑类ParserconFiguration为解析器添加一个案例。
将logic/LANGUAGE-logic.dl添加到新语言的Datalog规则。
有关此项目的许可,请参见许可证。请注意,ANTLR解析器可能会被不同的许可覆盖。