Lib.ErrorCe module permet de signaler une erreur irrattrapable à l'utilisateur.
Une telle erreur peut être soit une erreur venant d'un code source invalide, par exemple une erreur de syntaxe, soit une erreur interne du compilateur.
Idéalement, un compilateur ne doit jamais lever d'erreur interne. Cependant, celles-ci peuvent être utiles à des fins de débogage.
val user : ?position:Lexing.position -> ?details:string -> string -> 'aL'appel user ~position ~details message interrompt l'exécution du programme après avoir affiché le message message sur la sortie d'erreur du programme, en fournissant les détails details et en indiquant que l'erreur provient de la position position dans le fichier. Tous les paramètres en dehors de message sont optionnels.
Cette fonction est à utiliser pour les erreurs qui proviennent d'un programme mal formé syntaxiquement.
val internal : ?position:Lexing.position -> ?details:string -> unit -> 'aL'appel internal ~position ~details () interrompt l'exécution du programme après avoir affiché le contenu éventuel de details sur la sortie d'erreur du programme, et indiqué que l'erreur est liée à la position position dans le fichier. Les paramètres position et details sont optionnels.
Cette fonction doit être réservée aux erreurs internes du compilateur, c'est-à-dire aux situations qu'il ne sait pas traiter alors même que le programme source qu'il traite est valide. Elle ne devrait donc, idéalement, ne jamais être utilisée dans un projet terminé.