Ajouter les tests de Ketterlin dans nos tests
Ces modifications ajoutent les tests de Ketterlin dans nos tests, et modifient un peu nos spécifications Flex et Bison pour en passer quelques uns. Nous ne passons évidemment pas les tests d'exécution, puisque nous ne générons pas encore de MIPS, cependant nous ne passons pas non plus les tests syntaxiques, puisqu'ils nécessitent l'utilisation de la table des symboles dans le bison, ce qui n'est pas encore le cas: A priori, les tests (ou au moins la plupart) syntaxiques devraient passer après les modifications d'Amaury sur la génération de code intermédiaire.
Liste des choses à vérifier pour plus tard (cette liste est surtout pour toi Amaury):
- Vérifier que tous les entiers sont représentables sous 32 bits (donc -2147483648 <= x <= 2147483647)
- Vérifier que la fonction
main
est bien présente et a la bonne signature (pas de retour et pas de paramètres) - Vérifier que les variables (globales, locales et paramètres) ne peuvent pas avoir le type void
- Vérifier que l'on ne peut pas mettre un scalaire dans un tableau et inversement
- Vérifier que l'expression dans un if renvoie bien un booléen
- Vérifier que la variable implicite dans un for est bien un entier
- Vérifier que les opérations arithmétiques et d'inégalités sont bien effectués sur des entiers
- Vérifier que les opérandes des opérations d'égalités correspondent (soit entier et entier, soit booléen et booléen)
- Vérifier que les opérations booléennes sont bien effectués sur des booléens
- Vérifier que les variables et fonctions que l'on utilise sont bien déclarées
- Vérifier que l'on ne peut pas redéclarer une variable ou une fonction dans la même portée
- Vérifier que l'on ne peut pas utiliser
break
etcontinue
en-dehors d'une boucle - Vérifier que les types sont bons lors des appels aux fonctions
- Vérifier que le retour des fonctions sont bons