Ce projet est une implémentation d'un langage de programmation simple inspiré de Lisp. Il inclut :
- Une représentation des expressions à l'aide d'un arbre syntaxique abstrait (AST).
- Un parseur capable d'interpréter des chaînes de caractères en expressions.
- Un moteur d'évaluation pour exécuter les expressions.
- Des outils utilitaires pour gérer les entrées/sorties et afficher de l'aide.
Ce projet est conçu pour une exploration éducative des concepts d'analyse syntaxique, d'évaluation d'expressions et de gestion d'environnements dynamiques.
Le fichier AST.hs
contient la définition de l'arbre syntaxique abstrait (AST) pour le langage. Il supporte :
- Littéraux numériques et booléens
- Opérations arithmétiques et logiques
- Structures conditionnelles
- Variables et fonctions lambda
- Listes et séquences d'expressions
Le fichier ASTEval.hs
implémente un moteur d'évaluation permettant d'exécuter les expressions définies dans l'AST. Il gère :
- Les calculs arithmétiques
- Les comparaisons
- Les affectations et définitions de variables
- Les fonctions et leur application
Le fichier ASTParser.hs
fournit des outils pour convertir des chaînes de caractères en expressions AST. Il inclut :
- Un parseur pour les constantes, variables et opérations
- Le support des blocs et des fonctions
- Une syntaxe Lisp-like simplifiée
Le fichier Utils.hs
offre des fonctions utilitaires, notamment :
- Lecture de fichiers avec gestion des erreurs
- Affichage d'une aide à l'utilisation
Le fichier Setup.hs
configure le projet pour une compilation simple à l'aide de Cabal
.
- Haskell : Assurez-vous que GHC et Cabal sont installés sur votre machine.
Pour compiler le projet, exécutez la commande suivante dans le répertoire racine :
cabal build
Pour exécuter le programme :
cabal run
Vous pouvez également fournir un fichier contenant des expressions à évaluer :
./glados [file]
Pour afficher l'aide :
./glados --help
- AST.hs : Définition de l'arbre syntaxique abstrait.
- ASTEval.hs : Évaluation des expressions définies dans l'AST.
- ASTParser.hs : Analyse syntaxique pour générer l'AST à partir d'une chaîne de caractères.
- Parser.hs : Bibliothèque de combinateurs de parseurs.
- Utils.hs : Fonctions utilitaires pour la gestion des fichiers et l'affichage de l'aide.
- Setup.hs : Configuration du projet pour Cabal.
Thanks goes to these wonderful people
Erwann-Dev | rayan-mazouz-Dev |
BaderOukhai |
MCK-D |
Aurélie Lefranc |
Ce projet est sous licence [Epitech License].