Flex&Lex和Yacc&Bison有什么区别。我在互联网上疯狂搜索,但没有找到可靠的答案。
我可以在Ubuntu上安装纯Lex和Yacc,还是只能安装flex和bison。我很困惑。
lex --version
lex 2.5.35
最佳答案
Lex和Flex之间有一些区别,但是您必须滥用Lex才能遇到Flex问题。 (我有一个滥用Lex的程序,因此不能在Flex下工作。)这主要是在输入超前区域;在Lex中,您可以提供自己的输入代码并修改字符流; Flex不会让您这样做。
Yacc和Bison非常兼容,尽管Bison可以做一些额外的技巧。
您可能找不到要在Ubuntu上安装的Lex和Yacc(原始的AT&T版本)的合法副本。我不一定会说这是不可能的,但我并不了解。 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不在。
关于parsing - Flex/Lex和Yacc/Bison有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/623503/