Skip to content

Erwann-Dev/GLADOS

Repository files navigation

Projet GLADOS - README

📝 Description

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.

Fonctionnalités principales

1. Représentation des expressions (AST)

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

2. Évaluation des 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

3. Analyse syntaxique (Parsing)

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

4. Outils utilitaires

Le fichier Utils.hs offre des fonctions utilitaires, notamment :

  • Lecture de fichiers avec gestion des erreurs
  • Affichage d'une aide à l'utilisation

5. Configuration et Compilation

Le fichier Setup.hs configure le projet pour une compilation simple à l'aide de Cabal.

Installation et utilisation

Prérequis

  • Haskell : Assurez-vous que GHC et Cabal sont installés sur votre machine.

Compilation

Pour compiler le projet, exécutez la commande suivante dans le répertoire racine :

cabal build

Exécution

Pour exécuter le programme :

cabal run

Vous pouvez également fournir un fichier contenant des expressions à évaluer :

./glados [file]

Aide

Pour afficher l'aide :

./glados --help

Structure du projet

  • 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.

🤝 Contributors

Thanks goes to these wonderful people

Erwann-Dev
Erwann-Dev

rayan-mazouz
rayan-mazouz-Dev

Erwann-Dev
BaderOukhai

MCK-D
MCK-D

aurelielefr
Aurélie Lefranc

Licence

Ce projet est sous licence [Epitech License].