Skip to content
/ AS Public

Projets pédagogiques de L3 sur l'analyse syntaxique : implémentation d'analyseurs LL(1) et LR en C avec Flex/Bison. TP universitaire.

Notifications You must be signed in to change notification settings

Laghrouy/AS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Analyse Syntaxique - Projets Pédagogiques L3

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.

Structure du dépôt

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

1. APNEE 1 - LL1 - E

Objectif

Développer un analyseur syntaxique descendant récursif (LL(1)) pour un langage d'expressions arithmétiques et d'affectations.

Contenu principal

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

Compilation et exécution

cd "APNEE 1 - LL1 - E"
make
./assignations test.txt

2. APNEE 2 - LR - E

Objectif

Mettre en œuvre un analyseur syntaxique LR (généré par Bison/Yacc) pour un langage similaire, avec gestion de la table des symboles.

Contenu principal

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

Compilation et exécution

cd "APNEE 2 - LR - E"
make
./assign1 test.txt
./assign2 simple_expression.txt

Prérequis

  • 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

Objectifs pédagogiques

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

Auteurs

Projet pédagogique de Licence 3 - Analyse Syntaxique.

About

Projets pédagogiques de L3 sur l'analyse syntaxique : implémentation d'analyseurs LL(1) et LR en C avec Flex/Bison. TP universitaire.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published