[antlr-interest] bug in GnuCParser.g - missing declarations and statements
Andy Tripp
antlr at jazillian.com
Fri Apr 10 09:58:46 PDT 2009
Sam,
Good point.
Looks like StdCParser.g was written before the C99 standard:
// John D. Mitchell (john at non.net), Jul 12, 1997
...and the GnuCParser.g written not much later:
// Monty Zukowski (jamz at cdsnet.net) April 28, 1998
So they must be based on C89 or C90.
Andy
Sam Barnett-Cormack wrote:
> Andy Tripp wrote:
>> FWIW, I found and fixed a problem in the "cgram" grammar
>> GnuCParser.g and StdCParser.g. They didn't recognize declarations
>> coming after statements in a compoundStatement, like this:
>>
>> f() {
>> printf("hello");
>> int i;
>> }
>>
>> This is allowed in the C99 standard, section 6.8.2, and
>> by the GCC manual section 5.26 "Mixed Declarations and Code".
>
> And explicitly not allowed by earlier "standard" (eg ISO, K&R) C
> standards... do we document what standard StdCPardser is meant to target?
>
More information about the antlr-interest
mailing list