Maybe a question directed at Rick and Erich: would there be any downsides to allowing labels in DO/IF/SELECT blocks, and if so, which ones would be imaginable? It seems that allowing labels in all those places would allow doing a trace label to see which blocks get executed.

---rony


On 23.05.2026 21:46, Josep Maria Blasco wrote:
Hi all,

I would like to reopen the discussion about labels inside block instructions. Currently, labels are not allowed inside IF, DO, LOOP and SELECT.

The ANSI standard defines error 47, "Unexpected label", with a single subcode, 47.1: 'INTERPRET data must not contain labels; found "<name>"'.

Rexx/VM for VM/ESA Version 2 Release 4.0 defines "DMSREX219E Error 47 Unexpected 
label".

ooRexx 5.2.0 also defines 47.1, and, additionally, it defines:

  * 47.2: Labels are not allowed within a DO/LOOP block; found "label".
  * 47.3: Labels are not allowed within an IF block; found "label".
  * 47.4: Labels are not allowed within a SELECT block; found "label"

Consistently, when a label appears inside a block instruction, it is flagged at parse time and the program doesn't run.

Compare this to the behaviour of Rexx/VM (CMS Level 15, Service level 903, 
REXX370 4.02 01 Dec 1998).

Program:

/* REXX */
TRACE L
A: IF 1;B: THEN C: DO; D: SAY HELLO; E: END

Output:

Ready; T=0.02/0.04 20:42:01
test
     3 *-* A:
       *-*  B:
       *-*  C:
       *-*   D:
HELLO
       *-*   E:
Ready; T=0.01/0.01 20:42:05

We simply *cannot* have "Home of the Open Object Rexx Project. ooRexx is the open source version of IBM's Object REXX Interpreter. _*It is upwardly compatible with classic REXX and will execute classic REXX programs unchanged*_. The project is managed by the Rexx Language Association" written at the start of SourceForge homepage and allow this behaviour in the ooRexx interpreter.

  Josep Maria
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to