In PL/I, language keywords are not reserved. Makes for interesting work when writing the lex scanner.


Joe McGuckin
ViaNet Communications

joe@via.net
650-207-0372 cell
650-213-1302 office
650-969-2124 fax



On Nov 24, 2021, at 12:15 PM, Rob Pike <robpike@gmail.com> wrote:

I thought it was

TRY:PROC OPTIONS(MAIN);
  DCL (IF,THEN,ELSE) FIXED BINARY (31);

  IF = 1;
  THEN = 2;
  ELSE = 3;

  IF IF = THEN THEN THEN = IF ; ELSE ELSE IF = THEN = ELSE;

END TRY;

But yeah.

Best to Barry.

-rob

On Thu, Nov 25, 2021 at 2:23 AM Richard Salz <rich.salz@gmail.com> wrote:

I asked my pal Barry Shein, who many of you know, if he had his PL/1 syntax horror lying around, and he did.  He said: "this was tested on the Iron Spring Software PL/1 compiler running on openSuSe Linux (http://www.iron-spring.com/)"

IBM still uses PL/1.  Remember, the main definition of "legacy" is "revenue-producing."

TRY:PROC OPTIONS(MAIN);
  DCL (IF,THEN,ELSE) FIXED BINARY (31);

  IF = 1;
  THEN = 2;
  ELSE = 3;

  IF IF = THEN THEN THEN = IF ; ELSE ELSE = THEN;

END TRY;