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解析器可能會被不同的許可覆蓋。