Ce dépôt contient le code source d'un compilateur pour le langage SNL, un langage structuré inspiré par le langage naturel et des constructions de type Java. Ce projet utilise ANTLR4 pour le parsing et Java/Maven pour la construction et l'exécution.
SNL est un langage d'intention conçu pour être déclaratif et facile à lire. Il permet de définir des structures de haut niveau comme des projets, des entités de données, des classes et des fonctions.
Fonctionnalités actuelles :
- Définition de projets avec un langage cible.
- Déclaration de classes avec héritage.
- Déclaration d'entités de données (similaires à des structs).
- Déclaration de fonctions et de variables typées.
- Expressions arithmétiques et logiques de base.
- Structures de contrôle (
if,while,for).
Pour construire et exécuter ce projet, vous aurez besoin de :
- JDK (Java Development Kit) : Version 11 ou supérieure.
- Apache Maven : Pour gérer les dépendances et la construction du projet.
- ANTLR4 Tool : La commande
antlr4doit être accessible depuis votre terminal pour générer le parser.
Ce projet est fourni avec un script shell (snl.sh) qui automatise entièrement la configuration.
Clonez ce dépôt, puis exécutez le script de configuration. Il va nettoyer le projet, générer le parser ANTLR, et créer les fichiers sources nécessaires.
# Rendez le script exécutable
chmod +x snl.sh
# Exécutez le script
./snl.shUtilisez Maven pour compiler le projet. La première fois, cela téléchargera les dépendances nécessaires (comme antlr4-runtime).
mvn clean installCette commande va compiler tout le code source et créer un fichier .jar dans le dossier target/.
Pour analyser un fichier source SNL, utilisez la commande exec:java de Maven. Un fichier d'exemple test.snl est fourni.
mvn exec:javaCette commande exécutera la classe Compiler principale en lui passant test.snl comme argument.
grammar/snl.g4: Le fichier de grammaire ANTLR4 qui définit la syntaxe du langage SNL.src/main/java/com/your_project/: Le code source Java du compilateur.Compiler.java: Le point d'entrée du programme qui orchestre le lexer, le parser et le visiteur.AstVerifierVisitor.java: Le visiteur qui parcourt l'arbre syntaxique pour effectuer l'analyse.- Les fichiers générés par ANTLR (
snlLexer.java,snlParser.java, etc.) se trouvent également ici.
pom.xml: Le fichier de configuration de Maven.test.snl: Un fichier d'exemple de code écrit en SNL.snl.sh: Le script d'automatisation pour la configuration du projet.