The version you see here has been updated based on the 2011 ISO C
standard.
(The previous version's Lex
and
Yacc
files for ANSI C9X still exist as archived copies.)

It is assumed that translation phases 1..5 have already been completed,
including preprocessing and _Pragma processing.
The Lex rule for string literals will perform concatenation (translation phase 6).
Transliteration of universal character names (\uHHHH or \UHHHHHHHH) must
have been done by either the preprocessor or a replacement for the
input() macro used by Lex (or the YY_INPUT function used by Flex)
to read characters.
Although comments should have been changed to space characters during
translation phase 3, there are Lex rules for them anyway.

I want to keep this version as close to the current C Standard grammar
as possible; please let me know if you discover
discrepancies.
(There is an FAQ
for this grammar that you might want to read first.)

jutta@pobox.com, 2012

Last edit:
2012-12-19 DAGwyn@aol.com

Note: The following %-parameters are the minimum sizes needed for real Lex.