
นี่เป็นกรอบสำหรับการวิเคราะห์ซอร์สโค้ดแบบคงที่โดยใช้แบบสอบถาม Datalog
สำหรับชุดของภาษาต้นทางที่รองรับดูรายการตัวแยกวิเคราะห์ในที่เก็บไวยากรณ์ -v4 ภาษาต่อไปนี้รวมอยู่ในกล่อง: C, C ++, COBOL85, GO, JavaScript, Kotlin, Lua, PHP, PROLOG, Python3, Rust และ Solidity การสนับสนุนสำหรับภาษาเพิ่มเติมสามารถเพิ่มได้อย่างง่ายดายอ่านด้านล่างสำหรับวิธีเปิดใช้งานการสนับสนุนสำหรับภาษาอื่น ๆ
เฟรมเวิร์กนี้ใช้งานได้โดยการเปลี่ยน Parsers ANTLR เป็น Datalog Front-Ends ANTLR Parser API จะถูกแปลเป็นสคีมา Datalog และจากนั้น parser จะถูกเรียกใช้ในซอร์สโค้ดเพื่อเติมไดเรกทอรี "ข้อเท็จจริง" ตามสคีมา ในที่สุดตรรกะการวิเคราะห์ทำงานบนข้อเท็จจริงและคำนวณผลการวิเคราะห์ สำหรับข้อมูลเพิ่มเติมดู Architecture.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 เพื่อเพิ่มเคสสำหรับตัวแยกวิเคราะห์
เพิ่ม logic/LANGUAGE-logic.dl ด้วยกฎ datalog สำหรับภาษาใหม่
สำหรับใบอนุญาตของโครงการนี้ดูใบอนุญาต โปรดทราบว่า AntlR parsers อาจได้รับการคุ้มครองโดยใบอนุญาตที่แตกต่างกัน