Adloun

OCaml (option informatique) · Chapitre 21 · Exercice de TD

Détecter les erreurs de syntaxe

Analyse syntaxique et interprétation · niveau 3 (difficile)

Énoncé

Donner trois entrées mal formées et expliquer comment l'interpréteur les rejette.

Corrigé

  • "3 +" : boucle_add voit Plus, appelle parse_terme sur la liste vide ; parse_facteur [] ne filtre ni Nombre ni ParenG failwith "facteur attendu".
  • "(3 + 4" : la parenthèse fermante manque ; parse_facteur ne trouve pas ParenD failwith "parenthese attendue".
  • "3 4" : parse_expr analyse 3, mais il reste [Nombre 4] non consommé ; le test reste <> [] dans interprete le rejette.

Un analyseur correct refuse les entrées invalides au lieu de produire un résultat absurde — c'est la rigueur du contrat (chapitre 1).

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre