A state-of-the-art parser generator is the DMS Software Reengineering Toolkit. (I'm the architect).
It isn't FOSS, but you asked specifically about state-of-the art.
It isn't so much a parser generator, as a complete ecosystem for building tools that process formal documents (programs, specifications, hardware designs, anything that has a "formal syntax/semantics").
DMS provides
- lexers with full Unicode capability and ability to read a huge variety of input encoding formats (ascii, UTF-8/16, EBCDIC, ...)
- full-context free parsing (infinite lookahead and built-in error recovery)
- automatically builds abstract syntax trees, determining which productions are lists. The syntax trees capture comments in the text.
- provides direct support for building tree-structured analzers called "attribute grammar evaluators"
- provides symbol table construction support that has been proven to be capable of handling nasty languages such as C++
- provides pretty printers to regenerate valid source text from the trees, including regenerating valid comments
- source-to-source rewrite rules to allow you to define program transformations using the syntax of the langauge of interest
- provides control flow, data flow, call graph, and global points-to analysis machinery
- has tested front front ends for C, C++, Java, and COBOL, all of which build symbol tables and construct the various flow analyses above
- has front ends for a variety of other langauges, including C# (4.0), PHP, Ada, ...
One of the tests of fire for a "state of the art" parser generator is its ability to parse C++. DMS parses C++, does all the symbol table construction, etc. and has been used to carry out massive transformations automatically on C++ code.
Other "parser generators" tend to provide at best parsing ability and leave you to build your own trees and all of the rest of the above stuff if you have the heart and the years to do it.
ANTLR is a bit better in that it does provide support for tree building, some syntax-directed pattern matching. The C++-trial-by-fire ANTLR sort of passes; there is a C++ front end for ANTLR. To the best of my knowledge, it is incomplete, doesn't have symbol table support, and I don't know of any uses of it for production tasks.
ELSA succeeds at C++ (and symbol tables) by virtue of being focused on parsing C++. The foundation machinery (Elkhound) behind ELSA is the same GLR parsing algorithms used by DMS. But I don't believe that Elkhound is widely used for anything but to support ELSA.
At the risk of being immodest, I would suggest that DMS defines the state of the art.
(I'll agree that ANTLR is pretty good for what it does).
You can get more detailed comparisons of DMS to many other systems here.