Browse Source

Add README.md

Yohan Simard 3 years ago
parent
commit
9e1eb41f37
1 changed files with 31 additions and 0 deletions
  1. 31
    0
      README.md

+ 31
- 0
README.md View File

@@ -0,0 +1,31 @@
1
+# Générateur de parsers 
2
+## Groupe
3
+* Léonie Gallois
4
+* Jean-Rémy Hok
5
+* Nabil Moukhlis
6
+* Yohan Simard
7
+* Elies Tali
8
+* Arnaud Vergnet
9
+
10
+## Pré-requis
11
+La compilation nécessite python3 et gcc.
12
+
13
+## Fonctionnement
14
+* Écrire la grammaire dans le fichier `grammar.txt`
15
+* Exécuter la commande `make`, qui générera l'exécutable `parser`
16
+* Exécuter le parser avec `./parser "le mot à parser"`
17
+* Si le parser affiche OK, le mot fait partie du langage, s'il affiche KO, il n'en fait pas partie.
18
+
19
+## Limitations
20
+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.
21
+
22
+## Format de l'entrée
23
+La syntaxe de la **grammaire** est la suivante :
24
+- Une règle par ligne ;
25
+- Partie gauche separée de la partie droite par ":" ;
26
+- Les non-terminaux sont des mots avec un premier symbole correspondant	à une majuscule ;
27
+- Les terminaux sont en minuscules ;
28
+- Les terminaux et non-terminaux sont separés par un espace dans la	partie droite ;
29
+- L'axiome est le non-terminal de gauche de la première règle de la	grammaire.
30
+    
31
+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.

Loading…
Cancel
Save