
Ini adalah kerangka kerja untuk menganalisis kode sumber secara statis menggunakan kueri Datalog.
Untuk serangkaian bahasa sumber yang didukung, lihat daftar parser di repositori Grammars-V4. Bahasa -bahasa berikut termasuk di luar kotak: C, C ++, COBOL85, GO, JavaScript, Kotlin, Lua, PHP, Prolog, Python3, Rust, dan Solidity. Dukungan untuk lebih banyak bahasa dapat dengan mudah ditambahkan, baca di bawah ini untuk cara mengaktifkan dukungan untuk bahasa lain.
Kerangka kerja ini bekerja dengan mengubah parsers antlr menjadi front-end datalog. API Parser ANTLR diterjemahkan ke dalam skema datalog dan parser kemudian dipanggil pada kode sumber untuk mengisi direktori "fakta" sesuai dengan skema. Akhirnya, logika analisis berjalan pada fakta dan menghitung hasil analisis. Untuk informasi lebih lanjut, lihat Architecture.md.
./install-parsers.sh
Instal Souffle.
Bangun dan pasang distribusi:
./gradlew installDist
Contoh Python3:
build/install/antlr2datalog/bin/antlr2datalog -l python3 -i grammars-v4/python/python3/examples/coroutines.py
Contoh 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
Edit kelas parserconfiguration untuk menambahkan casing untuk parser.
Tambahkan logic/LANGUAGE-logic.dl dengan aturan Datalog untuk bahasa baru.
Untuk lisensi proyek ini, lihat lisensi. Perhatikan bahwa parser ANTLR dapat ditanggung oleh lisensi yang berbeda.