Travail à réaliser + Errata
Partie 1
La première partie du projet concerne la partie analyse syntaxique et typage.
Les éléments à réaliser sont détaillés dans le sujet : lisez-le attentivement et respectez les consignes.
Un squelette très minimal vous est donné que vous devez adapter.
Sujet partie 1 (version corrigée) et Archive de démarrage
Errata (7 novembre) sur la version imprimée :
- page 3 : le point virgule de fin de ligne est inséré après un token -- (et pas juste le token -)
- page 6 : erreur dans la règle pour une structure (liste des champs) et une déclaration de fonction (liste des paramètres).
Il s'agit d'une liste possiblement vide de <vars> séparées par un signe de ponctuation (; pour les champs , pour les paramètres) signe qui peut être ajouté de manière optionnelle à la fin.
L'écriture correcte est : (<vars>;)*<vars>?
Errata (20 novembre) :
l'erreur sur la description de la grammaire affectait aussi la description d'un bloc. On doit accepter un bloc vide {}, avec une suite d'instructions séparées par des points virgules {i1;..;in} avec dans le cas d'au moins une instruction la possibilité de mettre un point-virgule final {i1;..;in;}.Erreur d'analyse syntaxique :
Menhir a un mécanisme de gestion d'erreurs assez sophistiqué. Il ne vous est pas demandé de l'utiliser. Pour éviter de voir apparaître l'erreur MenhirBasics.Error, qui n'est pas rattrapable, il est possible de passer l'option --fixed-exception à menhir, les erreurs lèveront alors l'exception Parsing.Parse_error qui elle peut être rattrapée.