Evaluation de l'analyseur syntaxique 2017/2018

0 - Compilation du compilateur

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

1 - Exécution sur des exemples existants

Modifiez le script testAll.sh fourni (version d'évaluation) 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

Analysez les programmes suivants (il s'agit des exemples connus, fournis comme base de tests minimale):

affect.l
boucle.l
expression.l
max.l
tri.l
affect-err.l

2 - Exécution sur de nouveaux exemples

2.1 Exemples compilés OK

Compilez à l'aide de votre compilateur, les programmes suivants :

appel
assoc-prec
procedure_arg
procedure
procedure_retour
procedure_varloc
si
sinon
tableau
tantque
lexunits
factorielle
fibo
pgcd

2.1 Exemples pas compilés

Vérifiez que les programmes suivants ne compilent pas :

lex-err.l
synt-err.l
extra.l
33a.l
ordre.l

3 - Ajout des opérateurs modulo (%) et supérieur (>)

On désire ajouter aux expressions du langage L deux nouveaux opérateurs, l'opérateur arithmétique modulo (%) et l'opérateur de comparaison supérieur (>). La précédence du modulo est la même que celle des opérateurs de multiplication (*) et division (/). La précédence de l'opérateur supérieur (>) est la même que celle des opérateurs de comparaison égal (=) et inférieur (<).

Modifiez l'analyseur lexical et l'analyseur syntaxique afin de prendre en compte ces nouveaux opérateurs.

4 - Tests

Vous testerez votre nouvel analyseur sur les programmes suivants:

nouveau1.l
nouveau2.l
nouveau3.l
nouveau-erreur.l - ne doit pas compiler