Les règles de typage sont décrites dans le sujet du projet (distribué en cours).
Une fois cette archive décompressée (par exemple avec tar zxvf parser-java.tar.gz), vous obtenez un répertoire mini-c/. La bibliothèque java-cup-11a-runtime.jar qui est contenue dans le sous-répertoire lib/ doit être ajoutée au projet (mais les versions récentes d'Eclipse et de VSCode vont le faire automatiquement).
Le code fourni compile. Le programme principal se trouve dans Main.java. Il accepte sur sa ligne de commande un fichier portant le suffixe .c et les options --debug, --parse-only et --type-only. Si aucun fichier n'est spécifié, le fichier test.c (fourni) est utilisé, afin de faciliter les tests.
Si une erreur lexicale ou syntaxique est détectée, elle est signalée et le programme termine avec le code de retour 1.
Si l'analyse syntaxique est effectuée avec succès et que l'option --parse-only est spécifiée, alors le programme termine avec le code de retour 0.
En cas d'erreur de typage détectée, elle sera signalée en levant l'exception Error, avec comme argument le message choisi. Cette exception est ensuite rattrapée dans Main.java et affichée sous la forme
error: ... le message de votre choix ...et le programme termine avec le code de retour 1.
int main() { return 0; }c'est-à-dire en se limitant aux constantes pour les expressions et à return pour les instructions.
syntax/bad/ refusés à l'analyse lexicale ou syntaxique syntax/good/ acceptés à l'analyse syntaxique typing/bad/ refusés à l'analyse sémantique typing/good/ acceptés à l'analyse sémantique exec-fail/ compilés avec succès mais l'exécution doit échouer exec/ compilés et exécutés avec succès, le résultat attendu étant conforme au fichier .out
> ./run -2 mon/chemin/vers/mini-c Test de mon/chemin/vers/mini-c Partie 2 mauvais ........................... bons ................................................................. Typage : 92/92 : 100%