Evaluation du projet

Compilation du compilateur

Compilez votre analyseur à l'aide d'un Makefile.

Tests automatiques

Téléchargez l'archive eval-final.tgz et décompressez la.

Modifiez le script testAll.sh qui est dans l'archive en modifiant le chemin vers l'exécutable de votre compilateur. Ouvrez le script et lisez attentivement les instructions pour modifier également les options/chemins qui permettent de générer les différentes sorties. Ensuite, exécutez-le pour effectuer les tests ci-dessous 100% automatiquement.

Le script va lancer le compilateur sur tous les fichiers *.l qui se trouvent dans le répertoire input. Les fichiers produits seront écrits (toujours par le script) dans le répertoire output. Le script compare alors les fichiers se trouvant dans ouput avec les fichiers de référence se trouvant dans les repertoires de la forme ref-*.

Dans les fichiers se trouvant dans input certains vous ont déjà été donnés, d'autres sont nouveaux et, parmi ces derniers, certains contiennent des erreurs et doivent provoquer l'échec de la compilation. Ces cas sont pris en compte par le script.

Ajout de l'opérateur unaire carré (^)

On désire ajouter aux expressions du langage L l'opérateur carré. Il s'agit d'un opérateur unaire qui a pour effet d'élever au carré son opérande. Il est représenté par le signe ^, qui est placé avant l'opérande. L'expression ^3, par exemple, vaut 9. La précédence de l'opérateur carré est la même que celle de l'opérateur de la négation.

Modifiez l'analyseur lexical, l'analyseur syntaxique, la génération de l'arbre abstrait et la génération de code afin de prendre en compte ce nouvel opérateur.

Relancez le script testAll.sh qui testera vos modifications sur des exemples contenant l'opérateur carré.