GNU Bison 是一个自由软件,用于自动生成语法分析器程序,实际上可用于所有常见的操作系统。Bison 把 LALR 形式的上下文无关文法描述转换为可做语法分析的 C 或 C++ 程序。GNU bison 基本兼容 Yacc,并做了一些改进。它一般与 flex 一起使用。
Bison 3.2 主要包括对 lalr1.cc 的改进,具体如下:
向后不兼容的更改
- 对 DJGPP 的支持已过时,多年来也一直没有维护和测试。 除非有恢复它的提案,否则它将被删除。
其他更改
- %printers should use yyo rather than yyoutput to denote the output stream.
- Variant-based symbols in C++ should use emplace() rather than build().
- In C++ parsers, parser::operator() is now a synonym for the parser::parse.
新特性
- C++: Support for move semantics (lalr1.cc)
- C++: Implicit move of right-hand side values (lalr1.cc)
- C++: The implicit default semantic action is always run
- C++: Renaming location.hh
- C++: stack.hh and position.hh are deprecated
Bug 修复
- Portability issues on MinGW and VS2015.
- Portability issues in the test suite.
- Portability/warning issues with Flex.
更多详情可查阅发行说明:https://lwn.net/Articles/770138/
下载地址:
转自 https://www.oschina.net/news/101447/bison-3-2-released