From: dxforth@gmail.com   
      
   On 2/11/2025 10:57 pm, albert@spenarnc.xs4all.nl wrote:   
   > In article <6906a681$1@news.ausics.net>, dxf wrote:   
   >> On 1/11/2025 11:37 am, dxf wrote:   
   >>> On 1/11/2025 12:45 am, Gerry Jackson wrote:   
   >>>> On 30/10/2025 19:46, albert@spenarnc.xs4all.nl wrote:   
   >>>> ...   
   >>>>> - never comment out conditional compilation.   
   >>>>   
   >>>> Why? I've shown that it can be done using \, that means that any use of   
   [IF] etc in the rest of the comment line is not executed   
   >>>   
   >>> This in fact was my intent during a debug session i.e. the [IF] was moved   
   >>> elsewhere temporarily. I didn't want to delete the original as it was   
   >>> always going to be restored - hence my adding a preceding \ (which didn't   
   >>> work as I had hoped). I knew what I wanted to do. It's just that the   
   >>> existing tools didn't allow me.   
   >>   
   >> Below is hack that implements it. To what extent it's useful in debugging   
   is   
   >> for each to determine. I'm less excited about [ELSE] as a comment tool due   
   >> to potential clashes. I have a simple one-liner for that (* *). Again,   
   it's   
   >> not something a screen user tends to use.   
   >>   
   >> \ Original   
   >> : [ELSE] ( -- )   
   >> 1 BEGIN   
   >> BL WORD COUNT ( 2DUP UPPER) DUP IF   
   >> 2DUP S" [IF]" COMPARE IF   
   >> 2DUP S" [ELSE]" COMPARE IF   
   >> S" [THEN]" COMPARE 0=   
   >> ELSE 2DROP DUP 1 = THEN   
   >> ELSE 2DROP 1 THEN +   
   >> ELSE 2DROP REFILL AND THEN   
   >> ?DUP 0=   
   >> UNTIL   
   >> ; IMMEDIATE   
   >>   
   >> : [IF] 0= IF POSTPONE [ELSE] THEN ; IMMEDIATE   
   >>   
   >> : [THEN ; IMMEDIATE   
   >>   
   >> \ Modified to recognize '\' in skipped code   
   >> : [ELSE] ( -- )   
   >> 1 BEGIN BEGIN   
   >> BL WORD COUNT ( 2DUP UPPER) DUP IF [ 1 CS-ROLL ]   
   >> 2DUP S" \" COMPARE 0= WHILE 2DROP POSTPONE \ REPEAT   
   >> 2DUP S" [IF]" COMPARE IF   
   >> 2DUP S" [ELSE]" COMPARE IF   
   >> S" [THEN]" COMPARE 0=   
   >> ELSE 2DROP DUP 1 = THEN   
   >> ELSE 2DROP 1 THEN +   
   >> ELSE 2DROP REFILL AND THEN   
   >> ?DUP 0=   
   >> UNTIL   
   >> ; IMMEDIATE   
   >>   
   >>   
   >   
   > So you use conditional compilation to be able to run your soduku   
   > solver on e.g. gforth.   
   >   
   > Now you impose conditions how conditional compilation is supposed to   
   > work on gforth, totally defeating the purpose of using conditional   
   > compilation to enhance portability.   
      
   I'm not aware ANS-Forth required compatibility with Gforth.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|