Tout petit le projet
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Yohan Simard e6bb5cfb0e Add dependency to grammar.txt in parser.c rule 3 years ago
Makefile Add dependency to grammar.txt in parser.c rule 3 years ago
README.md Add README.md 3 years ago
grammar.txt Makefile finished 3 years ago
main.py Remove useless code 3 years ago

README.md

Générateur de parsers

Groupe

  • Léonie Gallois
  • Jean-Rémy Hok
  • Nabil Moukhlis
  • Yohan Simard
  • Elies Tali
  • Arnaud Vergnet

Pré-requis

La compilation nécessite python3 et gcc.

Fonctionnement

  • Écrire la grammaire dans le fichier grammar.txt
  • Exécuter la commande make, qui générera l’exécutable parser
  • Exécuter le parser avec ./parser "le mot à parser"
  • Si le parser affiche OK, le mot fait partie du langage, s’il affiche KO, il n’en fait pas partie.

Limitations

Le parser ne backtrack pas, ce qui signifie que l’ordre des règles a une importance : si un non-terminal a été reconnu par une règle, on ne reviendra pas dessus, et donc les règles suivantes ne seront pas testées même en cas d’échec plus loin dans le mot.

Format de l’entrée

La syntaxe de la grammaire est la suivante :

  • Une règle par ligne ;
  • Partie gauche separée de la partie droite par “:” ;
  • Les non-terminaux sont des mots avec un premier symbole correspondant à une majuscule ;
  • Les terminaux sont en minuscules ;
  • Les terminaux et non-terminaux sont separés par un espace dans la partie droite ;
  • L’axiome est le non-terminal de gauche de la première règle de la grammaire.

Le mot à parser doit être fourni avec tous les terminaux concaténés avec un espace, et entre guillemets pour qu’il soit considéré comme un seul argument.