antlr2datalog
1.0.0

이것은 Datalog 쿼리를 사용하여 소스 코드를 정적으로 분석하기위한 프레임 워크입니다.
지원되는 소스 언어 세트는 Grammars-V4 저장소의 파서 목록을 참조하십시오. 다음 언어가 상자에 포함되어 있습니다 : C, C ++, Cobol85, Go, JavaScript, Kotlin, Lua, PHP, Prolog, Python3, Rust 및 Solidity. 더 많은 언어에 대한 지원은 쉽게 추가 할 수 있습니다. 다른 언어를 지원하는 방법은 아래를 참조하십시오.
이 프레임 워크는 Antlr Parsers를 Datalog 프론트 엔드로 변환하여 작동합니다. Antlr Parser API는 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 클래스를 편집하여 구문 분석기의 사례를 추가하십시오.
새로운 언어에 대한 Datalog 규칙과 함께 logic/LANGUAGE-logic.dl 추가하십시오.
이 프로젝트의 라이센스는 라이센스를 참조하십시오. ANTLR 파서는 다른 라이센스로 덮여있을 수 있습니다.