The primary
yacc grammar you'll want is from Ed Willink. Ed believes
his grammar is fully compliant with
the ISO/ANSI C++
standard, however he doesn't warrant it: "the grammar has not," he says,
"been used in anger." You can get
the
grammar without action routines or
the
grammar with dummy action routines. You can also get
the
corresponding lexer. For those who are interested in how he achieves
a context-free parser (by pushing all the ambiguities plus a small number of
repairs to be done later after parsing is complete), you might want to read
chapter 4 of
his
thesis.
There is also a very old yacc grammar that doesn't support templates,
exceptions, nor namespaces; plus it deviates from the core language in some
subtle ways. You can get that grammar
here or
here.