antlr2datalog
1.0.0

これは、データログクエリを使用してソースコードを静的に分析するためのフレームワークです。
サポートされているソース言語のセットについては、Grammars-V4リポジトリのパーサーのリストを参照してください。次の言語は、C、C ++、COBOL85、GO、JavaScript、Kotlin、Lua、PHP、Prolog、Python3、Rust、およびSolidityの箱から外れて含まれています。より多くの言語のサポートを簡単に追加できます。他の言語のサポートを有効にする方法については、以下をお読みください。
このフレームワークは、ANTLRパーサーをDatalogのフロントエンドに変換することで機能します。 ANTLRパーサーAPIはデータログスキーマに翻訳され、パーサーはソースコードに呼び出されて、スキーマに従って「事実」ディレクトリに入力されます。最後に、分析ロジックは事実を実行し、分析結果を計算します。詳細については、achurtecture.mdを参照してください。
./install-parsers.sh
Souffleをインストールします。
分布を構築してインストールします。
./gradlew installDist
python3例:
build/install/antlr2datalog/bin/antlr2datalog -l python3 -i grammars-v4/python/python3/examples/coroutines.py
Kotlinの例:
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を編集して、パーサーのケースを追加します。
新しい言語のDatalogルールを使用してlogic/LANGUAGE-logic.dlを追加します。
このプロジェクトのライセンスについては、ライセンスを参照してください。 ANTLRパーサーは、さまざまなライセンスでカバーされる場合があることに注意してください。