Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

(I maintain Bison.)

While I definitely agree that ANTLR is a great tool, I feel that many of the critics about Bison are somewhat unfair.

First of all, many people like to tie Flex and Bison together, and that's wrong. You don't have to use Flex to feed tokens to your Bison parser. And my personal opinion is that Flex is badly maintained. Releases are infrequent, and issues keep on stacking. So please, stop putting Flex and Bison in the same bucket: they _can_ be used together, but they are not maintained by the same people.

Second, many people seem to not know that Bison is way more than YACC. To name just a few features of Bison

- it goes way beyond LALR(1): IELR(1), canonical LR(1), and GLR are supported

- it generates parsers in C, C++, Java and D

- it supports push and pull parsing

- it supports customized error message generation

- it can generate explicit counterexamples about conflicts (see https://en.wikipedia.org/wiki/GNU_Bison#Counterexample_gener... to see examples)

- it perfectly supports reentrant parsers and it comes with several examples of such parsers (see https://github.com/akimd/bison/tree/master/examples/c)

- and way more.

The original article says:

> Flex and Bison are very much stable software. They are maintained, but development of new features is limited, if not absent.

Before emitting such strong statements about Bison, please at least look at its current state and to the NEWS file (https://git.savannah.gnu.org/cgit/bison.git/tree/NEWS). There were two major releases in 2018, three in 2019 and two in 2020. That's 29 releases in four years if you also count the bug fix releases. Therefore "development of new features is limited, if not absent" is pretty much false. Did the author actually studied Bison before writing all this?



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: