Il existe quelques différences entre Lex et Flex, mais il faut abuser de Lex pour rencontrer les problèmes de Flex. (J'ai un programme qui abuse de Lex et qui ne fonctionne donc pas sous Flex.) Cela concerne principalement le domaine de l'anticipation de l'entrée ; dans Lex, vous pouvez fournir votre propre code d'entrée et modifier le flux de caractères ; Flex ne vous laissera pas faire.
Yacc et Bison sont assez compatibles, bien que Bison puisse faire quelques tours supplémentaires.
Vous ne pouvez probablement pas trouver de copies légitimes de (les versions originales, AT&T de) Lex et Yacc à installer sur Ubuntu. Je ne dirais pas nécessairement que c'est impossible, mais je n'en ai pas connaissance. Flex et Bison sont facilement disponibles et sont équivalents pour la plupart des besoins. Vous pouvez également trouver divers programmes alternatifs et approximativement équivalents dans le monde BSD.
Lex et Yacc sont maintenus par les détenteurs de la licence SVRx d'Unix - des sociétés telles qu'IBM (AIX), HP (HP-UX) et Sun (Solaris) ont des versions modifiées de Lex et Yacc à leur disposition. MKS fournit également MKS Lex et MKS Yacc ; cependant, le Yacc au moins a quelques extensions non standard.
Flex et Bison sont gratuits. (AT&T) Lex et Yacc ne le sont pas.
6 votes
Il n'y a pas de version 2.5.35 de lex -- vous exécutez flex version 2.5.35, il s'identifie simplement comme 'lex' si vous l'invoquez comme 'lex'.