
Это структура для статического анализа исходного кода с использованием запросов Datalog.
Для набора поддерживаемых языков источника см. Список анализаторов в репозитории Grammarmars-V4. Следующие языки включены из коробки: C, C ++, COBOL85, GO, JavaScript, Kotlin, Lua, PHP, Prolog, Python3, Rust и Polidity. Поддержка большего количества языков может быть легко добавлена, читать ниже, чтобы включить поддержку для других языков.
Эта структура работает путем преобразования анализаторов ANTLR в фронт-классы Datalog. API анализаторов ANTLR переводится в схему данных Datalog, а затем анализатор вызывает в исходном коде для заполнения каталога «фактов» в соответствии с схемой. Наконец, логика анализа работает по фактам и вычисляет результаты анализа. Для получения дополнительной информации см. Architecture.md.
./install-parsers.sh
Установите суфле.
Создайте и установите распределение:
./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 могут быть покрыты различными лицензиями.