Ce répertoire contient un programme de départ à partir duquel vous pouvez programmer votre fouine.
Les commandes ci-dessous sont à exécuter dans le répertoire principal, qui est au-dessus de bin/ et lib/.
pour (re)compiler, lancer
dune build
pour executer le programme, lancer
dune exec bin/fouine.exe
entrez ensuite une expression arithmetique, avec juste + - et *, comme par exemple 4+3*5
On vous conseille d'exécuter une fois la commande
ln -s _build/default/bin/fouine.exe fouine
pour ne pas avoir à saisir le _build/default/main.exe
Après quoi vous pouvez
- taper
./fouinepour lancer l'exécutable et saisir une expression au clavier - taper
./fouine test/basic.mlpour lancer fouine sur le fichier basic.ml
Lisez les fichiers dans cette archive, compilez le code (cf. ci-dessous)
Puis étendez fouine. Voici une succession d'étapes, traitez celles que vous pouvez, dans la mesure de vos possibilités.
-
expressions arithmétiques. Contemplez l’évaluation des expressions arithmétiques, améliorez les choses du point de vue de la factorisation du code si vous voyez un moyen de le faire ; sinon, laissez en l’état pour le moment.
-
opérateurs booléens et
if.. then.. else -
fonction
prInt(cf. les notes de cours) -
ajout des déclarations let.. in
-
ajout des fonctions
-
fonctions récursives etc., ad lib
Pour chaque étape, référez-vous aux notes de cours (partie 1.2).
Écrivez à chaque fois de petits fichiers de tests dans le répertoire test/
bin/fouine.ml : fichier principal
lib/expressions.ml : définition des expressions et de l'évaluation
lib/affiche.ml : affichage des expressions et des valeurs
lib/lexer.mll : lexèmes, analyse lexicale
lib/parser.mly : règles de grammaire, analyse syntaxique
tests/ : sous-répertoire de tests
fichiers dune et dune-project : pour la compilation, à ne pas modifier a priori
En principe vous n'avez à modifier que les fichiers
expr.ml lexer.mll parser.mly
dans le répertoire lib/
référez-vous au fichier *README-parser.md, dans cette archive
lundi 2 février 2025 à 23h59
. indiquez brièvement au début du fichier Readme ce que vous avez pu ajouter à fouine
. envoyez une archive **qui compile**