Adloun

L'interpréteur

Exercice · OCaml (option informatique), chapitre 21 — Analyse syntaxique et interprétation

Énoncé

Assembler interprete et donner les valeurs de "2 * (3 + 4) - 5" et "10 - 3 - 2".

Corrigé

let interprete s =
  let (e, reste) = parse_expr (lexer s) in
  if reste <> [] then failwith "expression mal formee" else evalue e

interprete &quot;2 * (3 + 4) - 5&quot; . interprete &quot;10 - 3 - 2&quot; (associativité à gauche, grâce à boucle_add). La chaîne lexer parser evalue produit la bonne valeur en respectant priorités et associativité.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.