MainframeSupports
tip uge 42/2000:

I sidste uge blev jeg opmærksom på et lille trick opfundet af Peter Hagedorn, som igen har set det et andet sted ifølge ham selv. Ideen er at udnytte kommentarerne i sit REXX-program til brug som hjælpetekst. Jeg synes ideen er genial, især fordi det er utroligt simpelt at lave netop dette nummer i REXX. Det kniber mere end godt er med den slags i andre programmeringssprog.

Det er vist en del uger siden, jeg har benyttet et eksempel, men i dette tilfælde er det absolut det mest illustrative:

/* REXX */
/* Denne REXX illustrerer, */
/* hvordan kommentarer i et REXX-program */
/* kan udnyttes som hjælpetekst */
COMMENTLINE = 1
DO WHILE SUBSTR(SOURCELINE(COMMENTLINE), 1, 2) = '/*'
  SAY LEFT(SOURCELINE(COMMENTLINE), 72)
  COMMENTLINE = COMMENTLINE + 1
END
EXIT

SOURCELINE er en REXX-funktion, der returnerer indholdet af den linie i sourcekoden, som parameteren angiver. I samspil med INTERPRET statementet kan man givetvis lave mere ravage end godt er, men i denne sammenhæng er SOURCELINE ganske uskadelig og tilmed overordentlig nyttig. Eksemplet kan nu udvides efter dit eget temperament. Mulighederne er i hvert fald utallige, og det bliver pludselig sjovt at lave kommentarer.

Jeg har hørt, at REXX-interpreteren normalt vil lave en form for compression af ens REXX-program før eksekveringen som eksempelvis at fjerne kommentarer. Denne compression foretages af gode grunde ikke, når man har anvendt SOURCELINE i sit REXX-program.

Sidste uges tip        Tip oversigten