35Fermer37
GodzilLe 12/01/2009 à 09:46
Zephyr (./8) :
Bon, puisque le sujet Lex/Flex et Yacc/Bison est incontournable, autant ajouter un petit mot dessus : il s'agit de programmes avec lesquels tu vas respectivement pouvoir générer un lexeur et un parseur en indiquant d'un coté les "mots" valides de ton langage (sous la forme d'expressions régulières par exemple) et d'un autre la grammaire avec un formalisme proche de celui du ./6.

Avis perso : ça permet d'obtenir très vite un lexeur/parseur et donc ça peut être utile pour des petits programmes que tu veux réaliser rapidement, mais ça génère un code absolument immonde (aussi bien point de vue lisibilité qu'optimisation). Pour un "vrai" projet, et à fortiori si tu le fais en partie pour le plaisir d'apprendre, mon seul conseil serait de ne surtout jamais toucher à ces outils ^^

Code C qui n'est pas très maintenable c'est sur, mais en même temps tu n'a pas besoin de le maintenir, c'est le code lex ou yacc qui est a maintenir. Sinon celui qui sors le code le plus mauvais reste lex/flex, yacc/byycc/bison (enfin j'ai un doute pour le dernier) sort un code qui peut bien sur être optimisable par rapport a un fait a la main, mais il ne se démerde pas si mal. fait une analyse grammaticale sur un langage complexe peu vite être très difficile a la main sad

(et a vrai dire quand je vois le code C++ d'onur, si demain on découvre qu'il y a une erreur de précédence obscure sur l'utilisation des parenthèse dans un cas précis, bon courage pour corriger un tel bug dans un analyseur fait main :/)