Flex&Lex和Yacc&Bison有什么区别.我疯狂地搜索了互联网,但没有找到任何可靠的答案.
我可以在Ubuntu上安装纯Lex和Yacc,或者我只能安装flex和bison.我很迷惑.
Lex或Yacc仍然由某人维护吗?
他们都是免费的吗?
如果Lex不是免费的,为什么我要在我的Ubuntu发行版上安装它?
lex --version lex 2.5.35
Jonathan Lef.. 77
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不是.
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不是.
Bison是Yacc的GNU实现/扩展,Flex是Lex的继承者.在任何一种情况下,使用bison/flex都很好(并且推荐).
在大多数(全部?)Linux系统中,"Lex"实际上是flex的符号链接.基本上,它只是一个与免费版本不同的名称.
YACC可在Plan 9和Open Solaris的开源许可下使用.此外,还有Berkeley YACC,它与原始YACC兼容,但不共享源代码.Berkeley YACC可以在任何开源BSD操作系统上找到.