
Esta é uma estrutura para analisar estaticamente o código -fonte usando consultas de dados.
Para o conjunto de idiomas de origem suportados, consulte a lista de analisadores no repositório Grammars-V4. Os seguintes idiomas estão incluídos fora da caixa: C, C ++, COBOL85, GO, JavaScript, Kotlin, Lua, Php, Prolog, Python3, Rust e Solity. O suporte a mais idiomas pode ser facilmente adicionado, leia abaixo como ativar o suporte a outros idiomas.
Essa estrutura funciona transformando os analisadores ANTLR para os front-ends Datalog. Uma API do analisador ANTLR é traduzida em um esquema de dados e o analisador é invocado no código -fonte para preencher um diretório de "fatos" de acordo com o esquema. Finalmente, a lógica de análise é executada nos fatos e calcula os resultados da análise. Para mais informações, consulte Arquitetura.md.
./install-parsers.sh
Instale suflê.
Construa e instale a distribuição:
./gradlew installDist
Exemplo Python3:
build/install/antlr2datalog/bin/antlr2datalog -l python3 -i grammars-v4/python/python3/examples/coroutines.py
Exemplo 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
Editar a classe ParserConfiguration para adicionar um estojo para o analisador.
Adicione logic/LANGUAGE-logic.dl com as regras do Datalog para o novo idioma.
Para a licença deste projeto, consulte a licença. Observe que os analisadores ANTLR podem ser cobertos por diferentes licenças.