
Il s'agit d'un framework pour analyser statiquement le code source à l'aide de requêtes de datalog.
Pour l'ensemble des langages source pris en charge, consultez la liste des analyseurs dans le référentiel Grammar-V4. Les langues suivantes sont incluses hors de la boîte: C, C ++, COBOL85, GO, JavaScript, Kotlin, Lua, PHP, Prolog, Python3, Rust et Solidity. La prise en charge de plus de langues peut être facilement ajoutée, lisez la suite ci-dessous pour permettre la prise en charge d'autres langues.
Ce cadre fonctionne en transformant les analyseurs ANTLR en Front-Ends de données. Une ANTLR Parser API est traduite dans un schéma deoglog et l'analyseur est ensuite invoqué sur le code source pour remplir un répertoire "Facts" selon le schéma. Enfin, la logique d'analyse s'exécute sur les faits et calcule les résultats de l'analyse. Pour plus d'informations, voir Architecture.md.
./install-parsers.sh
Installez Souffle.
Construisez et installez la distribution:
./gradlew installDist
Python3 Exemple:
build/install/antlr2datalog/bin/antlr2datalog -l python3 -i grammars-v4/python/python3/examples/coroutines.py
Exemple de 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
Modifiez ParserConfiguration de classe pour ajouter un cas pour l'analyseur.
Ajoutez logic/LANGUAGE-logic.dl avec les règles de données pour la nouvelle langue.
Pour la licence de ce projet, voir Licence. Notez que les analyseurs Antlr peuvent être couverts par différentes licences.