Lib.BuiltinLe module définissant les opérateurs prédéfinis communs à tous les langages du sujet.
Toutes les opérations prédéfinies du langage source manipulent des entiers, y compris les opérations logiques et les comparaisons.
Les booléens sont donc encodés comme des entiers, selon la même convention qu'en langage C : la valeur 0 représente false, toute valeur non-nulle représente true.
Les fonctions suivantes effectuent la conversion selon ce principe. La fonction int_of_bool envoie true vers 1 par convention.
Le type des opérations prédéfinies du langage source.
Les opérations n'ayant pas de résultat significatif renvoient un entier arbitraire. Actuellement la seule opération de cette sorte est Builtin.t.PrintInt.
val to_string : t -> stringto_string op donne une représentation sous forme de chaîne de caractère de l'opérateur op.
val arity : t -> intarity op renvoie l'arité de l'opérateur op, c'est-à-dire son nombre d'opérandes.
val pp : Format.formatter -> t -> unitLes opérateurs prédéfinis sont affichables.
Le type sem ci-dessous représente la sémantique d'un opérateur, qui est une fonction n-aire travaillant sur les entiers.
val out : out_channel refLe canal sur lequel l'opérateur prédéfini print_int écrira, positionné à stdout par défaut.