From: rudi.j.blom@gmail.com (Rudi Blom)
Subject: [TUHS] Unix stories, Stephen Bourne and IF-FI in C code
Date: Tue, 10 Jan 2017 11:40:47 +0700 [thread overview]
Message-ID: <CAMYpm87G+5NFfB0yB_d4PDeQ1EdBgRWG8ea1v=r6fc_19eb2yQ@mail.gmail.com> (raw)
>Date: Mon, 09 Jan 2017 08:45:47 -0700
>From: arnold at skeeve.com
>To: rochkind at basepath.com
>Cc: tuhs at tuhs.org
>Subject: Re: [TUHS] Unix stories, Stephen Bourne and IF-FI in C code
>Message-ID: <201701091545.v09FjlXE027448 at freefriends.org>
>Content-Type: text/plain; charset=us-ascii
>
>I remember the Bournegol well; I did some hacking on the BSD shell.
>
>In general, it wasn't too unusual for people from Pascal backgrounds to
>do similar things, e.g.
>
> #define repeat do {
> #define until(cond) } while (! (cond))
>
>(I remember for me personally that do...while sure looked weird for.
>my first few years of C programming. :-)
>
>(Also, I would not recommend doing that; I'm just noting that
>people often did do stuff like that.)
When the Philips computer division worked on MPX (multi-processor
UNIX) in late 80tish they had an include file 'syntax.h' which did a
lot of that Pascal-like mapping.
Here part of it:
/* For a full explanation see the file syntax.help */
#define IF if(
#define THEN ){
#define ELSIF }else if(
#define ELSE }else{
#define ENDIF }
#define NOT !
#define AND &&
#define OR ||
#define CASE switch(
#define OF ){
#define ENDCASE break;}
#define WHEN break;case
#define CWHEN case
#define IMPL :
#define COR :case
#define BREAK break
#define WHENOTHERS break;default
#define CWHENOTHERS default
#define SELECT do{{
#define SWHEN }if(
#define SIMPL ){
#define ENDSELECT }}while(0)
#define SCOPE {
#define ENDSCOPE }
#define BLOCK {
#define ENDBLOCK }
#define FOREVER for(;;
#define FOR for(
#define SKIP
#define COND ;
#define STEP ;
#define LOOP ){
#define ENDLOOP }
#define NULLOOP ){}
#define WHILE while(
#define DO do{
#define UNTIL }while(!(
#define ENDDO ))
#define EXITWHEN(e) if(e)break
#define CONTINUE continue
#define RETURN return
#define GOTO goto
next reply other threads:[~2017-01-10 4:40 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-10 4:40 Rudi Blom [this message]
-- strict thread matches above, loose matches on Subject: below --
2017-01-10 13:50 Noel Chiappa
[not found] <mailman.1.1484013601.5032.tuhs@minnie.tuhs.org>
2017-01-10 3:11 ` Paul McJones
2017-01-09 2:30 Norman Wilson
2017-01-09 3:31 ` Steve Johnson
2017-01-09 15:30 ` Marc Rochkind
2017-01-09 15:45 ` arnold
2017-01-09 15:59 ` ron minnich
2017-01-09 16:03 ` Clem Cole
2017-01-10 18:44 ` Lawrence Stewart
2017-01-09 18:48 ` Derek Fawcus
2017-01-09 20:35 ` Steve Johnson
2017-01-10 12:24 ` Tony Finch
2017-01-11 6:00 ` Brantley Coile
2017-01-09 1:06 Doug McIlroy
2017-01-09 2:18 ` Random832
2017-01-08 20:37 Walter F.J. Mueller
2017-01-08 21:12 ` Larry McVoy
2017-01-08 21:26 ` Dave Horsfall
2017-01-08 21:54 ` Kay Parker
2017-01-08 23:14 ` Adam Sampson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAMYpm87G+5NFfB0yB_d4PDeQ1EdBgRWG8ea1v=r6fc_19eb2yQ@mail.gmail.com' \
--to=rudi.j.blom@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).