
Dies ist ein Framework für die statische Analyse von Quellcode mithilfe von Datalog -Abfragen.
Für den Satz unterstützter Quellsprachen siehe die Liste der Parser im Grammatik-V4-Repository. Die folgenden Sprachen sind aus der Box enthalten: C, C ++, Cobol85, GO, JavaScript, Kotlin, Lua, PHP, Prolog, Python3, Rost und Solidität. Die Unterstützung für weitere Sprachen kann einfach hinzugefügt werden. Lesen Sie weiter unten, wie Sie die Unterstützung für andere Sprachen ermöglichen.
Dieser Framework funktioniert durch Umwandlung von Antlr-Parsers in Datalog-Front-Ends. Eine Antlr -Parser -API wird in ein Datalog -Schema übersetzt und der Parser wird dann auf den Quellcode aufgerufen, um ein "Fakten" -Verzeichnis gemäß dem Schema zu füllen. Schließlich läuft die Analyselogik auf den Fakten und berechnet die Analyseergebnisse. Weitere Informationen finden Sie unter Architecture.md.
./install-parsers.sh
Souffle installieren.
Erstellen und installieren Sie die Verteilung:
./gradlew installDist
Python3 Beispiel:
build/install/antlr2datalog/bin/antlr2datalog -l python3 -i grammars-v4/python/python3/examples/coroutines.py
Kotlin Beispiel:
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
Bearbeiten Sie die Klasse Parserconfiguration, um einen Fall für den Parser hinzuzufügen.
Fügen Sie die Datalog-Regeln für die neue Sprache logic/LANGUAGE-logic.dl hinzu.
Für die Lizenz dieses Projekts siehe Lizenz. Beachten Sie, dass Antlr -Parsers durch verschiedene Lizenzen abgedeckt werden können.