Beeflang - open source performance-oriented compiled programming language

Patrick Schluter Patrick.Schluter at bbox.fr
Fri Jan 10 08:48:02 UTC 2020


On Thursday, 9 January 2020 at 17:19:38 UTC, Gregor Mückl wrote:
> On Thursday, 9 January 2020 at 16:58:16 UTC, Basile B. wrote:
>>   5. `repeat {} while ()` and `do {}` lacks of orthogonality. 
>> `do {} while (false);` could
>>      have been used instead, saving `repeat`. This new 
>> statement a very few value added
>>      but I understand that it's tempting to invent small 
>> things like that when creating a
>>      language.
>
> do {} has a separate meaning in beef. These blocks are not 
> looping, but using break; is valid in them to skip to their 
> end. While this is certainly creative, I don't know if it all 
> that useful. But it burns the "do" keyword in the grammar and 
> something else is required to start a do/while block.

What? They put that asinine "do {break; } while(0)" non-looping 
loop C idiom in the language as a 1st order construct?
That language is therefore officially deadbeef for me.

I hate that construct with a passion (I had to work on too much 
code using that). It is an obfuscated goto for people who want to 
use gotos but are not man enough to actually use goto. It is 
worse that a real goto, as with a real goto you have a label at 
the destination.


More information about the Digitalmars-d mailing list