Flex & Lex和Yacc & Bison有什么不同?我在网上疯狂地搜索,没有找到任何可靠的答案。
我可以在Ubuntu上安装纯Lex和Yacc,也可以只安装flex和bison。我很困惑。
lex --版本lex 2.5.35
发布于 2009-03-08 12:58:39
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并非如此。
发布于 2009-03-08 12:35:33
Bison是Yacc的GNU实现/扩展,Flex是Lex的继任者。在这两种情况下,都可以(推荐)使用bison / flex。
发布于 2009-04-18 00:21:51
在大多数(所有?)在Linux系统中,"Lex“实际上是flex的一个符号链接。基本上,它只是一个与免费版本不同的名称。
https://stackoverflow.com/questions/623503
复制相似问题