Author: Christian.Queinnec@lip6.fr

## Plan du chapitre

Ce chapitre présente différents outils de la distribution d'Objective CAML pour l'analyse lexicale et l'analyse syntaxique. Cette dernière suppose en règle générale que la première a été effectuée. Dans la première section, nous présentons un outil simple d'analyse lexicale fourni par le module `Genlex`. Nous entrons ensuite un peu plus dans le détail de la définition des ensembles d'unités lexicales en présentant le formalisme des expressions rationnelles. Nous illustrons leur mise en oeuvre dans le module `Str` et l'outil `ocamllex`. Dans la deuxième section nous définissons les grammaires et détaillons les règles de production de phrase d'un langage pour présenter deux types d'analyse : l'analyse descendante et l'analyse ascendante. Elles sont illustrées par l'utilisation des Stream et par l'outil `ocamlyacc`. Les analyses précédentes utilisent des grammaires sans contexte. Nous montrerons comment effectuer une analyse contextuelle avec les Streams. Dans la troisième section, nous reprenons l'exemple de l'interprète de BASIC, présenté page ??, en utilisant `ocamllex` et `ocamlyacc` pour implanter les fonctions d'analyse lexicale et syntaxique du langage.