Ce dépôt contient deux projets pédagogiques réalisés dans le cadre d'un cours de L3 sur l'analyse syntaxique. Ils illustrent la construction et l'utilisation d'analyseurs syntaxiques pour des langages simples, en mettant en œuvre les techniques LL(1) et LR.
- APNEE 1 - LL1 - E/ : Projet d'analyseur syntaxique utilisant la méthode LL(1) avec un lexer généré par Flex.
- APNEE 2 - LR - E/ : Projet d'analyseur syntaxique utilisant la méthode LR (avec Bison/Yacc et Flex).
Développer un analyseur syntaxique descendant récursif (LL(1)) pour un langage d'expressions arithmétiques et d'affectations.
- assignations.c / assignations.h : Analyseur syntaxique LL(1) et gestion des affectations.
- expr.lex : Définition du lexer avec Flex.
- lookahead_lexer.c / lookahead_lexer.h : Gestion du lookahead pour l'analyse LL(1).
- show_tokens.c : Affichage des tokens pour le débogage.
- tokens.h : Définition des types de tokens.
- uthash.h : Utilitaire pour la gestion de tables de hachage (symboles).
- test.txt, test2.txt : Fichiers de tests.
- Makefile : Compilation du projet.
cd "APNEE 1 - LL1 - E"
make
./assignations test.txtMettre en œuvre un analyseur syntaxique LR (généré par Bison/Yacc) pour un langage similaire, avec gestion de la table des symboles.
- assign1.y / assign1.lex : Grammaire et lexer pour le premier analyseur LR.
- assign2.y / assign2.lex : Grammaire et lexer pour le second analyseur LR (plus avancé).
- expr.y / expr.lex : Analyseur d'expressions arithmétiques.
- table_symboles.c / table_symboles.h : Gestion de la table des symboles.
- uthash.h : Utilitaire pour la gestion de tables de hachage.
- test.txt, simple_expression.txt : Fichiers de tests.
- Makefile : Compilation du projet.
cd "APNEE 2 - LR - E"
make
./assign1 test.txt
./assign2 simple_expression.txt- Flex : Générateur d'analyseur lexical
- Bison ou Yacc : Générateur d'analyseur syntaxique (pour le projet LR)
- GCC : Compilateur C
Installation sur Ubuntu/Debian :
sudo apt-get install flex bison gcc make- Comprendre et implémenter les principes des analyseurs LL(1) et LR.
- Manipuler les outils Flex et Bison pour générer des analyseurs.
- Gérer une table des symboles pour un langage simple.
- Expérimenter la compilation et l'exécution d'analyseurs sur des exemples concrets.
Projet pédagogique de Licence 3 - Analyse Syntaxique.