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_addvoitPlus, appelleparse_termesur la liste vide ;parse_facteur []ne filtre niNombreniParenGfailwith "facteur attendu".
"(3 + 4": la parenthèse fermante manque ;parse_facteurne trouve pasParenDfailwith "parenthese attendue".
"3 4":parse_expranalyse3, mais il reste[Nombre 4]non consommé ; le testreste <> []dansinterpretele 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
- Analyser un facteur corrigé
- Priorité du produit corrigé
- L'analyseur complet corrigé
- L'interpréteur corrigé
- Ajouter la division corrigé