Analyseur syntaxique descendant de grammaire LL(1)

Réalisation d'un analyseur syntaxique pour une grammaire donnée

Featured image

Présentation du projet

Le but du projet était de réaliser un analyseur syntaxique pour une grammaire d’un mini du langage C.

L’analyseur prend en entrée une chaine (programme) et devra retourner l’arbre syntaxique (liste des règles de grammaires) correspondant à ce programme.

Nous devions vérifier (manuellement) que la grammaire ci dessous, est bien LL(1), afin de nous assurer du caractère déterministe de l’analyseur à construire.

Grammaire du langage

Programme ::= main() {liste_declarations liste_instructions}
liste_declarations ::= une_declaration liste_declarations vide
une_declaration ::= type id
liste_instructions ::= une_instruction liste_instructions vide
une_instruction ::= affectation test
type ::= int float
affectation ::= id=nombre;
test ::= if condition instruction else instruction>
condition ::= id operateur nombre
operateur ::= < > =

Fonctionnalités développées

Et je le trouve où ce projet ?

Sur mon GitHub, avec le lien suivant : https://github.com/FredericCanaud/AnalyseDescendanteCompilation ;)