La syntaxe est décrite dans le sujet du projet.
Si l'analyse syntaxique est effectuée avec succès, le programme doit terminer avec le code de retour 0, sans rien afficher.
Si en revanche une erreur lexicale ou syntaxique est détectée, elle doit être affichée sous la forme
File "test.c", line 4, characters 5-6: syntax erroret le programme doit terminer avec le code de retour 1.
Il est conseillé de tester au fur et à mesure de l'élaboration de l'analyseur syntaxique, en ajoutant les constructions du langage une par une. Par exemple, on peut se donner comme premier objectif de parvenir à l'analyse syntaxique du programme suivant :
int main() { return 0; }Il suffit pour cela d'avoir des expressions réduites aux constantes entières et des instructions réduites à return. Une fois que cela fonctionne, on peut ajouter par exemple les opérateurs binaires dans les expressions. Et ainsi de suite.
syntax/bad/ refusés à l'analyse lexicale ou 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 du code MIPS doit échouer exec/ compilés et exécutés avec succès, le résultat attendu étant conforme au fichier .out
#!/bin/bash java -cp chemin/bin Main $@On doit obtenir ceci :
> ./run -1 mon/chemin/vers/mini-c Test de mon/chemin/vers/mini-c Partie 1 mauvais ........................... bons ................................................................................. Syntaxe : 108/108 : 100%