Ответ 1
Есть некоторые различия между Lex и Flex, но вы должны злоупотреблять Lex, чтобы столкнуться с проблемами с Flex. (У меня есть программа, которая злоупотребляет Lex и не работает под Flex, поэтому.) Это прежде всего в области ввода данных; в Лексе вы можете предоставить свой собственный код ввода и изменить поток символов; Flex не позволит вам это сделать.
Yacc и Bison довольно тесно совместимы, хотя у Bison есть некоторые дополнительные трюки, которые он может сделать.
Вероятно, вы не можете найти законные копии (оригинальные версии AT & T) Lex и Yacc для установки на Ubuntu. Я бы не стал говорить, что это невозможно, но я этого не знаю. Flex и Bison легко доступны и эквивалентны для большинства целей. Вы также можете найти различные альтернативные и приблизительно эквивалентные программы из мира BSD.
Lex и Yacc поддерживаются лицензиями Unix SVRx - такие компании, как IBM (AIX), HP (HP-UX) и Sun (Solaris), имеют модифицированные версии Lex и Yacc по их команде. MKS также предоставляет MKS Lex и MKS Yacc; однако Yacc по крайней мере имеет некоторые нестандартные расширения.
Flex и Bison бесплатны. (AT & T) Lex и Yacc не являются.