之间的区别是什么Flex&法和Yacc&野牛。我在网上搜索疯狂我找不到任何固体答案。

我可以安装纯Lex和Yacc在Ubuntu,或者我可以安装只flex和野牛。我感到困惑。

  • 是莱克斯或Yacc仍然被维持的人吗?
  • 是所有的人都免费的吗?
  • 如果Lex不是免费的,为什么我必须安装在我的Ubuntu分布?

    lex --version
    lex 2.5.35
    
有帮助吗?

解决方案

存在一些差异Lex和Flex,但你必须要滥用特别法遇到的问题。(I有一个程序侵犯法和不下的工作Flex的,因此。) 这主要是在该地区的输入预;在莱克斯,你可以提供自己的输入代码和修改符流;Flex不会让你这么做的。

Yacc和野牛是非常紧密的兼容,但野牛有的一些额外的技巧也可以做。

你可能不能找到合法的副本(原AT&T版本)Lex和Yacc安装在Ubuntu。我不一定会说这是不可能的,但我不知道还有这样的。Flex和野牛是容易获得的和相当于大多数用途。你也可以找到各种替代和大约相当于项目从BSD的世界。

莱克斯和Yacc是维持Unix SVRx licencees公司,例如IBM(AIX)、HP(HP-UX)和太阳(Solaris)已修改过的版本的Lex和Yacc在他们的命令。MKS还提供了MKS法和MKS Yacc;然而,Yacc至少有一些非标准扩展。

Flex和野牛都是免费的。(AT&T)Lex和Yacc不是。

其他提示

野牛是GNU执行/扩Yacc,Flex是继承的Lex.在任何一种情况下,它的罚款(和建议)使用野牛/flex。

在大多数(?) Linux系统"特别法"实际上是一种象征性的链接。基本上,这只是不同名称的免费版本。

YACC下提供开放源码许可证,从这两个计划9和开Solaris。此外,还有伯克利分校YACC,这是兼容的,与原始YACC,但是不共享源码。伯克利分校YACC上可以找到的任何开放源BSD操作系统。

野牛的一部分GNU项目。和yacc是用作一个实用工具在伯克利软件发布(BSD)。虽然它的兼容yacc,但Lex和Yacc是过去的事情。Flex和野牛被广泛地用于今天。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top