Lex et Yacc ne sont pas des outils spécifiques pour faire des compilateurs C, dans le sens où ils permettent d'écrire des compilateurs pour n'importe quel langage. Cependant, étant écrits en C, ils sont très bien adaptés pour cela (il est d'une manière générale plus facile d'écrire en X un compilateur pour le X...)
Lex est un outil qui permet d'effectuer l'analyse lexicale d'un langage, c'est-à-dire le découpage des lettres en unités lexicales (ou token). C'est la phase où l'on passe de à
[distance][=][vitesse][*][temps][;]
(les crochets représentent le découpage en tokens). On passe de simples lettres à des mots.
Yacc quant à lui est un outil qui s'occupe de l'analyse syntaxique du langage, c'est-à-dire comprendre comment les tokens sont ordonnés entre eux. On passe de mots à des phrases.
Partager