Réalisation d'un analyseur syntaxique pour une grammaire donnée
- Java (WIP)
- Python (Working :D)
- Calcul des ensembles premiers des éléments non terminaux
- Calcul des ensembles suivants des éléments non terminaux
- Calcul de la table d'analyse de la grammaire fournie
- Déterminer si la grammaire est LL(1) ou non
- Déterminer si une chaîne est acceptée par la grammaire
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.
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 ::= < | > | =
Remarque : id et nombre sont des terminaux.
Rapport de notre projet > ProjetCompilation.pdf
Sujet du panalyseurojet > SujetProjetCompilation.pdf