INF564 - TD 3 - Analyse syntaxique de mini-C

L'objectif de ce TD est de réaliser l'analyse syntaxique de mini-C.

La syntaxe est décrite dans le sujet du projet.

Travail demandé

Écrire un programme qui accepte sur sa ligne de commande exactement un fichier portant le suffixe .c et une option --parse-only.

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 error
et le programme doit terminer avec le code de retour 1.

Indications

On pourra avantageusement reprendre des éléments fournis au TD 2 (soit en Java, soit en OCaml), en particulier le programme principal.

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.

Tests

Des tests sont fournis : tests-v1.tar.gz. Cette archive contient
retour à la page du cours