Path: csiph.com!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Hans-Peter Diettrich Newsgroups: comp.compilers Subject: Re: What attributes of a programming language simplify its use? Date: Thu, 8 Dec 2022 21:42:26 +0100 Organization: Compilers Central Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <22-12-012@comp.compilers> References: <22-12-001@comp.compilers> <22-12-003@comp.compilers> <22-12-004@comp.compilers> <22-12-007@comp.compilers> <22-12-010@comp.compilers> <22-12-011@comp.compilers> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="12173"; mail-complaints-to="abuse@iecc.com" Keywords: C, history, comment Posted-Date: 08 Dec 2022 15:45:01 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com In-Reply-To: <22-12-011@comp.compilers> Content-Language: de-DE X-ZEDAT-Hint: R Xref: csiph.com comp.compilers:3259 On 12/8/22 2:53 AM, Keith Thompson wrote: > Hans-Peter Diettrich writes: >> On 12/6/22 6:56 PM, Keith Thompson wrote: > [...] >>> "int int" is a syntax error. >> >> I could not find in the (older) C++ grammar why "int int" should be a >> *syntax* error. Aren't both "int" and "long" simple-type-specifier's >> which can occur multiple times in a decl-specifier-seq? > > No, there are specific rules that specify the way they can be used. > In the 2011 ISO C standard standard (I use the draft from > https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf), the valid > type specifiers are listed in section 6.7.2. Thanks for the link :-) > At least one type specifier shall be given in the declaration > specifiers in each declaration, and in the specifier-qualifier > list in each struct declaration and type name. Each list of type > specifiers shall be one of the following multisets (delimited > by commas, when there is more than one multiset per item); > the type specifiers may occur in any order, possibly intermixed > with the other declaration specifiers. So let me repeat my questions: - Why is "int int" a syntax error? "At least one..." allows for more than one type-specifier in declaration-specifiers (6.7). - What's "long int long"? My current (Arduino) C++ compiler doesn't flag it as an error. DoDi [This is getting close to comp.lang.c but I'm OK with a little more discussion of the design decisions in C's very messy declarations. -John]