Path: csiph.com!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c Subject: Re: Abstract Syntax Tree for C programs Date: Sun, 26 May 2019 20:12:01 -0700 Organization: None to speak of Lines: 26 Message-ID: References: <1727e4f9-2056-4357-8572-599c46db6a88@googlegroups.com> <17344bb7-9c96-47eb-b006-c6c2e2b8bc59@googlegroups.com> <97b08cce-ec5d-4052-9338-0026b5d449bf@googlegroups.com> <87sgt339na.fsf@bsb.me.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: reader02.eternal-september.org; posting-host="908ad87739a48610a13fdc0e8010f879"; logging-data="28009"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+G1sG2s4eGSxf+lAipnSdi" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:iYNEhW8Jv2Tx/wFFhLY25lGpznQ= sha1:EJhd6i6qG6Ppc4/EDdf0SF5QNjQ= Xref: csiph.com comp.lang.c:144031 Bart writes: > On 26/05/2019 22:18, Keith Thompson wrote: >> Bart writes: >>> At file scope, you also have ordinary declarations as well, and they >>> need to be terminated with semicolons, including the ones that end >>> with "}". But function definitions that end with "}" don't. >> >> Exactly. I think your point, as always, is that you don't like the >> way it's defined. Sometimes a semicolon is required after a closing >> curly brace, sometimes it's optional, sometimes it's forbidden. >> All die, O the embarrassment. > > I hadn't said anything about it until Ben spotted an extra semicolon in > my code. > > But since you mention it, then yes it's a rather untidy bit of language > design. Not a very important one though. Mine is just an observation. Yours was not just an observation. It was a long discussion that included several statements that needed to be corrected. If you don't care about something, please don't try to discuss it. -- Keith Thompson (The_Other_Keith) kst-u@mib.org Will write code for food. void Void(void) { Void(); } /* The recursive call of the void */