Dans ce projet on s’intéresse à la construction d’un interpréteur d’un sous-ensemble du langage C (Mini-C). Un programme du mini-C consiste d’un seul fichier sans directives de préprocesseur. Il comporte deux parties : une partie avec des déclarations de variables (globales) et la fonction main.
Toutes les variables du mini-C sont globales et doivent être déclarées dans la partie correspondante (le code du main ne comporte aucune déclaration de variable). Les variables peuvent avoir un des trois types : int, char ou float. Le code du main peut comporter les instructions suivantes (E est une expression et BI est un bloc d’instructions) :
- une instruction vide
- une instruction d’affectation : V=E
- appel d’une fonction standard : FS(Liste_var)
- une instruction if (E) BI
- une instruction if (E) BI else BI
- une instruction while (E) BI
Chaque instruction (élémentaire) doit se terminer par le symbole ; Un bloc d’instructions (BI) est soit une instruction, soit une suite d’instructions entre les accolades. Une expression est soit une expression arithmétique du C, soit une expression logique du C.
Pour l’entrée/sortie on utilisera les fonctions print et read : print(v) ; affichera la variable v,
print(E) ; affichera la valeur de l’expression E
et print("chaine") ; affichera la chaîne de caractères entre les guillemets.
En utilisant read(v) ; la valeur de la variable v sera lue à partir de l’entrée standard.