
Este es un marco para analizar estáticamente el código fuente utilizando consultas de datos.
Para el conjunto de lenguajes fuente compatibles, consulte la lista de analizadores en el repositorio de gramatics-v4. Los siguientes idiomas se incluyen fuera de la caja: C, C ++, COBOL85, GO, JavaScript, Kotlin, Lua, PHP, Prolog, Python3, Rust y Solidity. El soporte para más idiomas se puede agregar fácilmente, lea a continuación sobre cómo habilitar el soporte para otros idiomas.
Este marco funciona transformando los analizadores de ANTLR en frontales de datos. Una API de analizador ANTLR se traduce en un esquema de datos y el analizador se invoca en el código fuente para poblar un directorio de "hechos" de acuerdo con el esquema. Finalmente, la lógica de análisis se ejecuta en los hechos y calcula los resultados del análisis. Para obtener más información, consulte Architecture.md.
./install-parsers.sh
Instale Souffle.
Construir e instalar la distribución:
./gradlew installDist
Ejemplo de Python3:
build/install/antlr2datalog/bin/antlr2datalog -l python3 -i grammars-v4/python/python3/examples/coroutines.py
Ejemplo 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
Edite la clase de parsconfiguración para agregar un caso para el analizador.
Agregue logic/LANGUAGE-logic.dl con las reglas de datos para el nuevo idioma.
Para la licencia de este proyecto, vea la licencia. Tenga en cuenta que los analizadores de ANTLR pueden estar cubiertos por diferentes licencias.